2010-02-03 03:07:07 +03:00
# ifndef _FS_CEPH_CRYPTO_H
# define _FS_CEPH_CRYPTO_H
2010-04-07 02:14:15 +04:00
# include <linux/ceph/types.h>
# include <linux/ceph/buffer.h>
2010-02-03 03:07:07 +03:00
/*
* cryptographic secret
*/
struct ceph_crypto_key {
int type ;
struct ceph_timespec created ;
int len ;
void * key ;
} ;
static inline void ceph_crypto_key_destroy ( struct ceph_crypto_key * key )
{
kfree ( key - > key ) ;
}
2011-03-26 02:32:57 +03:00
extern int ceph_crypto_key_clone ( struct ceph_crypto_key * dst ,
const struct ceph_crypto_key * src ) ;
2010-02-03 03:07:07 +03:00
extern int ceph_crypto_key_encode ( struct ceph_crypto_key * key ,
void * * p , void * end ) ;
extern int ceph_crypto_key_decode ( struct ceph_crypto_key * key ,
void * * p , void * end ) ;
extern int ceph_crypto_key_unarmor ( struct ceph_crypto_key * key , const char * in ) ;
/* crypto.c */
extern int ceph_decrypt ( struct ceph_crypto_key * secret ,
void * dst , size_t * dst_len ,
const void * src , size_t src_len ) ;
extern int ceph_encrypt ( struct ceph_crypto_key * secret ,
void * dst , size_t * dst_len ,
const void * src , size_t src_len ) ;
extern int ceph_decrypt2 ( struct ceph_crypto_key * secret ,
void * dst1 , size_t * dst1_len ,
void * dst2 , size_t * dst2_len ,
const void * src , size_t src_len ) ;
extern int ceph_encrypt2 ( struct ceph_crypto_key * secret ,
void * dst , size_t * dst_len ,
const void * src1 , size_t src1_len ,
const void * src2 , size_t src2_len ) ;
2011-03-29 01:59:38 +04:00
extern int ceph_crypto_init ( void ) ;
extern void ceph_crypto_shutdown ( void ) ;
2010-02-03 03:07:07 +03:00
/* armor.c */
2010-06-12 03:58:48 +04:00
extern int ceph_armor ( char * dst , const char * src , const char * end ) ;
extern int ceph_unarmor ( char * dst , const char * src , const char * end ) ;
2010-02-03 03:07:07 +03:00
# endif