libswarm-ng

C implementation of BMT hasher, Swarmhash and Single Owner Chunk for swarm
git clone git://git.defalsify.org/libswarm-ng.git
Log | Files | Refs | Submodules | README

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