2010-02-02 16:07:07 -08:00
# ifndef _FS_CEPH_CRYPTO_H
# define _FS_CEPH_CRYPTO_H
2010-04-06 15:14:15 -07:00
# include <linux/ceph/types.h>
# include <linux/ceph/buffer.h>
2010-02-02 16:07:07 -08: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 )
{
2012-08-02 09:12:59 -07:00
if ( key )
kfree ( key - > key ) ;
2010-02-02 16:07:07 -08:00
}
2013-10-18 13:48:22 -07:00
int ceph_crypto_key_clone ( struct ceph_crypto_key * dst ,
const struct ceph_crypto_key * src ) ;
int ceph_crypto_key_encode ( struct ceph_crypto_key * key , void * * p , void * end ) ;
int ceph_crypto_key_decode ( struct ceph_crypto_key * key , void * * p , void * end ) ;
int ceph_crypto_key_unarmor ( struct ceph_crypto_key * key , const char * in ) ;
2010-02-02 16:07:07 -08:00
/* crypto.c */
2013-10-18 13:48:22 -07:00
int ceph_decrypt ( struct ceph_crypto_key * secret ,
void * dst , size_t * dst_len ,
const void * src , size_t src_len ) ;
int ceph_encrypt ( struct ceph_crypto_key * secret ,
void * dst , size_t * dst_len ,
const void * src , size_t src_len ) ;
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 ) ;
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 ) ;
int ceph_crypto_init ( void ) ;
void ceph_crypto_shutdown ( void ) ;
2010-02-02 16:07:07 -08:00
/* armor.c */
2013-10-18 13:48:22 -07:00
int ceph_armor ( char * dst , const char * src , const char * end ) ;
int ceph_unarmor ( char * dst , const char * src , const char * end ) ;
2010-02-02 16:07:07 -08:00
# endif