| Sage Weil | 8b6e4f2 | 2010-02-02 16:07:07 -0800 | [diff] [blame] | 1 | #ifndef _FS_CEPH_CRYPTO_H | 
|  | 2 | #define _FS_CEPH_CRYPTO_H | 
|  | 3 |  | 
|  | 4 | #include "types.h" | 
|  | 5 | #include "buffer.h" | 
|  | 6 |  | 
|  | 7 | /* | 
|  | 8 | * cryptographic secret | 
|  | 9 | */ | 
|  | 10 | struct ceph_crypto_key { | 
|  | 11 | int type; | 
|  | 12 | struct ceph_timespec created; | 
|  | 13 | int len; | 
|  | 14 | void *key; | 
|  | 15 | }; | 
|  | 16 |  | 
|  | 17 | static inline void ceph_crypto_key_destroy(struct ceph_crypto_key *key) | 
|  | 18 | { | 
|  | 19 | kfree(key->key); | 
|  | 20 | } | 
|  | 21 |  | 
|  | 22 | extern int ceph_crypto_key_encode(struct ceph_crypto_key *key, | 
|  | 23 | void **p, void *end); | 
|  | 24 | extern int ceph_crypto_key_decode(struct ceph_crypto_key *key, | 
|  | 25 | void **p, void *end); | 
|  | 26 | extern int ceph_crypto_key_unarmor(struct ceph_crypto_key *key, const char *in); | 
|  | 27 |  | 
|  | 28 | /* crypto.c */ | 
|  | 29 | extern int ceph_decrypt(struct ceph_crypto_key *secret, | 
|  | 30 | void *dst, size_t *dst_len, | 
|  | 31 | const void *src, size_t src_len); | 
|  | 32 | extern int ceph_encrypt(struct ceph_crypto_key *secret, | 
|  | 33 | void *dst, size_t *dst_len, | 
|  | 34 | const void *src, size_t src_len); | 
|  | 35 | extern int ceph_decrypt2(struct ceph_crypto_key *secret, | 
|  | 36 | void *dst1, size_t *dst1_len, | 
|  | 37 | void *dst2, size_t *dst2_len, | 
|  | 38 | const void *src, size_t src_len); | 
|  | 39 | extern int ceph_encrypt2(struct ceph_crypto_key *secret, | 
|  | 40 | void *dst, size_t *dst_len, | 
|  | 41 | const void *src1, size_t src1_len, | 
|  | 42 | const void *src2, size_t src2_len); | 
|  | 43 |  | 
|  | 44 | /* armor.c */ | 
|  | 45 | extern int ceph_armor(char *dst, const void *src, const void *end); | 
|  | 46 | extern int ceph_unarmor(void *dst, const char *src, const char *end); | 
|  | 47 |  | 
|  | 48 | #endif |