26 #ifndef _HAVE_PCP_MGMT_H
27 #define _HAVE_PCP_MGMT_H
56 struct _pcp_rfc_pubkey_header_t {
62 struct _pcp_rfc_pubkey_0x21_t {
63 byte sig_ed25519_pub[crypto_sign_PUBLICKEYBYTES];
64 byte ed25519_pub[crypto_sign_PUBLICKEYBYTES];
65 byte curve25519_pub[crypto_box_PUBLICKEYBYTES];
68 struct _pcp_rfc_pubkey_sigheader_0x21_t {
76 struct _pcp_rfc_pubkey_sigsub_0x21_t {
81 typedef struct _pcp_rfc_pubkey_header_t rfc_pub_h;
82 typedef struct _pcp_rfc_pubkey_0x21_t rfc_pub_k;
83 typedef struct _pcp_rfc_pubkey_sigheader_0x21_t rfc_pub_sig_h;
84 typedef struct _pcp_rfc_pubkey_sigsub_0x21_t rfc_pub_sig_s;
86 struct _pcp_ks_bundle_t {
90 typedef struct _pcp_ks_bundle_t pcp_ks_bundle_t;
92 #define EXP_PK_CIPHER 0x21
93 #define EXP_PK_CIPHER_NAME "CURVE25519-ED25519-POLY1305-SALSA20"
95 #define EXP_HASH_CIPHER 0x22
96 #define EXP_HASH_NAME "BLAKE2"
98 #define EXP_SIG_CIPHER 0x23
99 #define EXP_SIG_CIPHER_NAME "ED25519"
101 #define EXP_SIG_VERSION 0x01
102 #define EXP_SIG_TYPE 0x1F
105 #define EXP_SIG_SUB_CTIME 2
106 #define EXP_SIG_SUB_SIGEXPIRE 3
107 #define EXP_SIG_SUB_KEYEXPIRE 9
108 #define EXP_SIG_SUB_NOTATION 20
109 #define EXP_SIG_SUB_KEYFLAGS 27
112 #define EXP_PK_HEADER "-----BEGIN ED25519-CURVE29915 PUBLIC KEY-----"
113 #define EXP_PK_FOOTER "------END ED25519-CURVE29915 PUBLIC KEY------"
114 #define EXP_SK_HEADER "-----BEGIN ED25519-CURVE29915 PRIVATE KEY-----"
115 #define EXP_SK_FOOTER "------END ED25519-CURVE29915 PRIVATE KEY------"
119 #define EXP_FORMAT_NATIVE 1
120 #define EXP_FORMAT_PBP 2
121 #define EXP_FORMAT_YAML 3
122 #define EXP_FORMAT_C 4
123 #define EXP_FORMAT_PY 5
124 #define EXP_FORMAT_PERL 6
301 pcp_ks_bundle_t *pcp_import_pub(
unsigned char *raw,
size_t rawsize);
302 pcp_ks_bundle_t *pcp_import_pub_rfc(
Buffer *blob);
303 pcp_ks_bundle_t *pcp_import_pub_pbp(
Buffer *blob);
306 pcp_key_t *pcp_import_secret(
unsigned char *raw,
size_t rawsize,
char *passphrase);
309 #endif // _HAVE_PCP_MGMT_H