blob: cb1f794029299f9e59fa1b0ea723ca43b46fd56e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
extern "C" {
#ifndef WG_KEY_LEN
#define WG_KEY_LEN 32
#endif
#define WG_KEY_LEN_BASE64 ((((WG_KEY_LEN) + 2) / 3) * 4 + 1)
#define WG_KEY_LEN_BASE32 (((WG_KEY_LEN + 4) / 5) * 8 + 1)
/*
* wg_pubkey_base64 is a C++-compatible wrapper for the curve25519 public-key
* derivation routines used natively in `wg(8)`
*
* PRIVKEY: a c-style string containing the base64-encoded private key
* BASE32: a c-style string of capacity WG_KEY_LEN_BASE64 containing the
* encoded public key
*
* returns: 0 on success
* > 0 when an error occurs (due to improper key formatting)
*/
int wg_pubkey_base32(char const * privkey, char * base32);
int wg_key_convert_base32(char const * base64, char * base32);
}
|