| 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 |  | 
| Yehuda Sadeh | 3d14c5d | 2010-04-06 15:14:15 -0700 | [diff] [blame] | 4 | #include <linux/ceph/types.h> | 
|  | 5 | #include <linux/ceph/buffer.h> | 
| Sage Weil | 8b6e4f2 | 2010-02-02 16:07:07 -0800 | [diff] [blame] | 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 |  | 
| Tommi Virtanen | 8323c3a | 2011-03-25 16:32:57 -0700 | [diff] [blame] | 22 | extern int ceph_crypto_key_clone(struct ceph_crypto_key *dst, | 
|  | 23 | const struct ceph_crypto_key *src); | 
| Sage Weil | 8b6e4f2 | 2010-02-02 16:07:07 -0800 | [diff] [blame] | 24 | extern int ceph_crypto_key_encode(struct ceph_crypto_key *key, | 
|  | 25 | void **p, void *end); | 
|  | 26 | extern int ceph_crypto_key_decode(struct ceph_crypto_key *key, | 
|  | 27 | void **p, void *end); | 
|  | 28 | extern int ceph_crypto_key_unarmor(struct ceph_crypto_key *key, const char *in); | 
|  | 29 |  | 
|  | 30 | /* crypto.c */ | 
|  | 31 | extern int ceph_decrypt(struct ceph_crypto_key *secret, | 
|  | 32 | void *dst, size_t *dst_len, | 
|  | 33 | const void *src, size_t src_len); | 
|  | 34 | extern int ceph_encrypt(struct ceph_crypto_key *secret, | 
|  | 35 | void *dst, size_t *dst_len, | 
|  | 36 | const void *src, size_t src_len); | 
|  | 37 | extern int ceph_decrypt2(struct ceph_crypto_key *secret, | 
|  | 38 | void *dst1, size_t *dst1_len, | 
|  | 39 | void *dst2, size_t *dst2_len, | 
|  | 40 | const void *src, size_t src_len); | 
|  | 41 | extern int ceph_encrypt2(struct ceph_crypto_key *secret, | 
|  | 42 | void *dst, size_t *dst_len, | 
|  | 43 | const void *src1, size_t src1_len, | 
|  | 44 | const void *src2, size_t src2_len); | 
| Tommi Virtanen | 4b2a58a | 2011-03-28 14:59:38 -0700 | [diff] [blame] | 45 | extern int ceph_crypto_init(void); | 
|  | 46 | extern void ceph_crypto_shutdown(void); | 
| Sage Weil | 8b6e4f2 | 2010-02-02 16:07:07 -0800 | [diff] [blame] | 47 |  | 
|  | 48 | /* armor.c */ | 
| Yehuda Sadeh | cd84db6 | 2010-06-11 16:58:48 -0700 | [diff] [blame] | 49 | extern int ceph_armor(char *dst, const char *src, const char *end); | 
|  | 50 | extern int ceph_unarmor(char *dst, const char *src, const char *end); | 
| Sage Weil | 8b6e4f2 | 2010-02-02 16:07:07 -0800 | [diff] [blame] | 51 |  | 
|  | 52 | #endif |