78 uint8_t **key,
size_t *key_len);
81 size_t input_num, uint8_t **sig,
size_t *sig_len);
83 size_t input_num, uint8_t *sig,
size_t sig_len);
85 const uint8_t *key,
size_t key_len,
const uint8_t *iv,
size_t iv_len,
86 uint8_t **output,
size_t *output_len);
88 const uint8_t *key,
size_t key_len,
const uint8_t *iv,
size_t iv_len,
89 uint8_t **output,
size_t *output_len);
91 "v0 crypto API has been deprecated, use v1");
99 uint8_t **sig,
size_t *sig_len);
102 size_t input_num, uint8_t *sig,
size_t sig_len);
105 const uint8_t *iv,
size_t iv_len, uint8_t **output,
size_t *output_len);
108 const uint8_t *iv,
size_t iv_len, uint8_t **output,
size_t *output_len);
126 LCB_DEPRECATED2(
const char *kid,
127 "Do not use kid field. Encryption keys have to be part of the provider implementation");
219 #define LCBCRYPTO_DEFAULT_FIELD_PREFIX "__crypt_" 298 "Use lcbcrypto_encrypt_fields");
301 "Use lcbcrypto_decrypt_fields");
const char * doc
pointer to the input JSON document
Definition: crypto.h:144
Structure for JSON field specification for encrypt/decrypt API.
Definition: crypto.h:127
Command to decrypt JSON fields.
Definition: crypto.h:159
uint64_t flags
provider-specific flags
Definition: crypto.h:73
LCB_DEPR_API2(lcb_error_t lcbcrypto_encrypt_document(lcb_t instance, lcbcrypto_CMDENCRYPT *cmd), "Use lcbcrypto_encrypt_fields")
size_t len
length of the data in bytes
Definition: crypto.h:55
lcbcrypto_KEYTYPE
Definition: deprecated.h:300
void(* destructor)(struct lcbcrypto_PROVIDER *provider)
destructor function, or NULL
Definition: crypto.h:75
void lcbcrypto_ref(lcbcrypto_PROVIDER *provider)
Increment reference counter for crypto-provider.
Command to encrypt JSON fields.
Definition: crypto.h:141
uint16_t version
version of the structure, current value is 1
Definition: crypto.h:71
lcbcrypto_FIELDSPEC * fields
list of field specs
Definition: crypto.h:148
size_t nfields
number of field specs
Definition: crypto.h:149
void lcbcrypto_register(lcb_t instance, const char *name, lcbcrypto_PROVIDER *provider)
Register crypto-provider for specified alias.
const uint8_t * data
pointer to data
Definition: crypto.h:54
const char * alg
crypto provider alias (NUL-terminated)
Definition: crypto.h:129
lcb_error_t lcbcrypto_encrypt_fields(lcb_t instance, lcbcrypto_CMDENCRYPT *cmd)
Encrypt all specified fields in the JSON encoded object.
void lcbcrypto_unregister(lcb_t instance, const char *name)
Unregister crypto-provider for specified alias.
struct lcb_st * lcb_t
Library handle representing a connection to a cluster and its data buckets.
Definition: couchbase.h:41
lcb_error_t
Error codes returned by the library.
Definition: error.h:580
int16_t _refcnt
reference counter
Definition: crypto.h:72
Crypto-provider interface.
Definition: crypto.h:70
void * cookie
opaque pointer (e.g.
Definition: crypto.h:74
size_t ndoc
size of the input JSON document
Definition: crypto.h:145
const char * prefix
prefix to encrypted field.
Definition: crypto.h:143
IOV-style structure for signing functions of crypto-provider.
Definition: crypto.h:53
lcb_error_t lcbcrypto_decrypt_fields(lcb_t instance, lcbcrypto_CMDDECRYPT *cmd)
Decrypt all specified fields in the JSON encoded object.
const char * name
field name (NUL-terminated)
Definition: crypto.h:128
char * out
pointer to output JSON document.
Definition: crypto.h:146
size_t nout
size of the output JSON document
Definition: crypto.h:147
void lcbcrypto_unref(lcbcrypto_PROVIDER *provider)
Decrement reference counter for crypto-provider.