keystore.h (1009B)
1 #ifndef _LIBSWARM_SIGN_H 2 #define _LIBSWARM_SIGN_H 3 4 #include "swarm.h" 5 6 typedef struct keystore_key { 7 unsigned char pk[SWARM_PRIVATE_KEY_SIZE]; 8 unsigned char pubk[SWARM_PUBLIC_KEY_SIZE]; 9 unsigned char label[SWARM_KEY_LABEL_SIZE]; 10 } keystore_key_t; 11 12 13 typedef struct keystore { 14 size_t pk_sz; 15 size_t label_sz; 16 size_t digest_sz; 17 keystore_key_t *keys; 18 size_t keys_count; 19 keystore_key_t* (*label)(keystore_key_t *key); 20 } keystore_t; 21 22 23 keystore_key_t* keystore_put(keystore_t *keystore, const keystore_key_t *z, const unsigned char *passphrase, size_t passphrase_sz); 24 keystore_key_t* keystore_get(const keystore_t *keystore, keystore_key_t *z, const int idx); 25 unsigned char* keystore_sign(const keystore_t *keystore, unsigned char *z, const int key_idx, const unsigned char *digest); 26 keystore_key_t* key_recover(keystore_key_t *key, const unsigned char *signature, const unsigned char *digest); 27 int key_from_public(keystore_key_t *key); 28 int key_from_private(keystore_key_t *key); 29 30 #endif // _LIBSWARM_SIGN_H