root/net/ceph/crypto.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _FS_CEPH_CRYPTO_H
   3 #define _FS_CEPH_CRYPTO_H
   4 
   5 #include <linux/ceph/types.h>
   6 #include <linux/ceph/buffer.h>
   7 
   8 /*
   9  * cryptographic secret
  10  */
  11 struct ceph_crypto_key {
  12         int type;
  13         struct ceph_timespec created;
  14         int len;
  15         void *key;
  16         struct crypto_sync_skcipher *tfm;
  17 };
  18 
  19 int ceph_crypto_key_clone(struct ceph_crypto_key *dst,
  20                           const struct ceph_crypto_key *src);
  21 int ceph_crypto_key_encode(struct ceph_crypto_key *key, void **p, void *end);
  22 int ceph_crypto_key_decode(struct ceph_crypto_key *key, void **p, void *end);
  23 int ceph_crypto_key_unarmor(struct ceph_crypto_key *key, const char *in);
  24 void ceph_crypto_key_destroy(struct ceph_crypto_key *key);
  25 
  26 /* crypto.c */
  27 int ceph_crypt(const struct ceph_crypto_key *key, bool encrypt,
  28                void *buf, int buf_len, int in_len, int *pout_len);
  29 int ceph_crypto_init(void);
  30 void ceph_crypto_shutdown(void);
  31 
  32 /* armor.c */
  33 int ceph_armor(char *dst, const char *src, const char *end);
  34 int ceph_unarmor(char *dst, const char *src, const char *end);
  35 
  36 #endif

/* [<][>][^][v][top][bottom][index][help] */