mirror of
https://codeberg.org/scip/pcp.git
synced 2025-12-17 20:00:58 +01:00
changed public key export format to (slightly modified) RFC4880 style (openpgp format).
Current state is totally unstable, it's not yet ready.
This commit is contained in:
@@ -24,12 +24,16 @@
|
||||
|
||||
pcp_key_t *pcpkey_hash;
|
||||
pcp_pubkey_t *pcppubkey_hash;
|
||||
pcp_keysig_t *pcpkeysig_hash;
|
||||
|
||||
pcp_key_t *__k;
|
||||
pcp_pubkey_t *__p;
|
||||
pcp_keysig_t *__s;
|
||||
|
||||
void pcphash_init() {
|
||||
pcpkey_hash = NULL;
|
||||
pcppubkey_hash = NULL;
|
||||
pcpkeysig_hash = NULL;
|
||||
}
|
||||
|
||||
void pcphash_del(void *key, int type) {
|
||||
@@ -37,6 +41,12 @@ void pcphash_del(void *key, int type) {
|
||||
HASH_DEL(pcpkey_hash, (pcp_key_t *)key);
|
||||
memset(key, 0, sizeof(pcp_key_t));
|
||||
}
|
||||
else if(type == PCP_KEYSIG_NATIVE || type == PCP_KEYSIG_PBP) {
|
||||
pcp_keysig_t *keysig = (pcp_keysig_t *)key;
|
||||
HASH_DEL(pcpkeysig_hash, keysig);
|
||||
memset(keysig->blob, 0, keysig->size);
|
||||
free(keysig->blob);
|
||||
}
|
||||
else {
|
||||
HASH_DEL(pcppubkey_hash, (pcp_pubkey_t *)key);
|
||||
memset(key, 0, sizeof(pcp_pubkey_t));
|
||||
@@ -58,10 +68,24 @@ void pcphash_clean() {
|
||||
pcphash_del(current_pub, PCP_KEY_TYPE_PUBLIC);
|
||||
}
|
||||
}
|
||||
|
||||
if(pcpkeysig_hash != NULL) {
|
||||
pcp_keysig_t *current_keysig, *tmp;
|
||||
HASH_ITER(hh, pcpkeysig_hash, current_keysig, tmp) {
|
||||
pcphash_del(current_keysig, current_keysig->type);
|
||||
}
|
||||
}
|
||||
|
||||
pcphash_init();
|
||||
}
|
||||
|
||||
|
||||
pcp_keysig_t *pcphash_keysigexists(char *id) {
|
||||
pcp_keysig_t *keysig = NULL;
|
||||
HASH_FIND_STR(pcpkeysig_hash, id, keysig);
|
||||
return keysig; /* maybe NULL! */
|
||||
}
|
||||
|
||||
pcp_key_t *pcphash_keyexists(char *id) {
|
||||
pcp_key_t *key = NULL;
|
||||
HASH_FIND_STR(pcpkey_hash, id, key);
|
||||
@@ -79,6 +103,10 @@ void pcphash_add(void *key, int type) {
|
||||
pcp_pubkey_t *k = (pcp_pubkey_t *)key;
|
||||
HASH_ADD_STR( pcppubkey_hash, id, k );
|
||||
}
|
||||
else if(type == PCP_KEYSIG_NATIVE || type == PCP_KEYSIG_PBP) {
|
||||
pcp_keysig_t *keysig = (pcp_keysig_t *)key;
|
||||
HASH_ADD_STR( pcpkeysig_hash, belongs, keysig);
|
||||
}
|
||||
else {
|
||||
pcp_key_t *k = (pcp_key_t *)key;
|
||||
HASH_ADD_STR( pcpkey_hash, id, k);
|
||||
|
||||
Reference in New Issue
Block a user