annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/openssl/modes.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
rev   line source
jpayne@69 1 /*
jpayne@69 2 * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
jpayne@69 3 *
jpayne@69 4 * Licensed under the OpenSSL license (the "License"). You may not use
jpayne@69 5 * this file except in compliance with the License. You can obtain a copy
jpayne@69 6 * in the file LICENSE in the source distribution or at
jpayne@69 7 * https://www.openssl.org/source/license.html
jpayne@69 8 */
jpayne@69 9
jpayne@69 10 #ifndef HEADER_MODES_H
jpayne@69 11 # define HEADER_MODES_H
jpayne@69 12
jpayne@69 13 # include <stddef.h>
jpayne@69 14
jpayne@69 15 # ifdef __cplusplus
jpayne@69 16 extern "C" {
jpayne@69 17 # endif
jpayne@69 18 typedef void (*block128_f) (const unsigned char in[16],
jpayne@69 19 unsigned char out[16], const void *key);
jpayne@69 20
jpayne@69 21 typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out,
jpayne@69 22 size_t len, const void *key,
jpayne@69 23 unsigned char ivec[16], int enc);
jpayne@69 24
jpayne@69 25 typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out,
jpayne@69 26 size_t blocks, const void *key,
jpayne@69 27 const unsigned char ivec[16]);
jpayne@69 28
jpayne@69 29 typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out,
jpayne@69 30 size_t blocks, const void *key,
jpayne@69 31 const unsigned char ivec[16],
jpayne@69 32 unsigned char cmac[16]);
jpayne@69 33
jpayne@69 34 void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out,
jpayne@69 35 size_t len, const void *key,
jpayne@69 36 unsigned char ivec[16], block128_f block);
jpayne@69 37 void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,
jpayne@69 38 size_t len, const void *key,
jpayne@69 39 unsigned char ivec[16], block128_f block);
jpayne@69 40
jpayne@69 41 void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out,
jpayne@69 42 size_t len, const void *key,
jpayne@69 43 unsigned char ivec[16],
jpayne@69 44 unsigned char ecount_buf[16], unsigned int *num,
jpayne@69 45 block128_f block);
jpayne@69 46
jpayne@69 47 void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out,
jpayne@69 48 size_t len, const void *key,
jpayne@69 49 unsigned char ivec[16],
jpayne@69 50 unsigned char ecount_buf[16],
jpayne@69 51 unsigned int *num, ctr128_f ctr);
jpayne@69 52
jpayne@69 53 void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out,
jpayne@69 54 size_t len, const void *key,
jpayne@69 55 unsigned char ivec[16], int *num,
jpayne@69 56 block128_f block);
jpayne@69 57
jpayne@69 58 void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
jpayne@69 59 size_t len, const void *key,
jpayne@69 60 unsigned char ivec[16], int *num,
jpayne@69 61 int enc, block128_f block);
jpayne@69 62 void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out,
jpayne@69 63 size_t length, const void *key,
jpayne@69 64 unsigned char ivec[16], int *num,
jpayne@69 65 int enc, block128_f block);
jpayne@69 66 void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out,
jpayne@69 67 size_t bits, const void *key,
jpayne@69 68 unsigned char ivec[16], int *num,
jpayne@69 69 int enc, block128_f block);
jpayne@69 70
jpayne@69 71 size_t CRYPTO_cts128_encrypt_block(const unsigned char *in,
jpayne@69 72 unsigned char *out, size_t len,
jpayne@69 73 const void *key, unsigned char ivec[16],
jpayne@69 74 block128_f block);
jpayne@69 75 size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out,
jpayne@69 76 size_t len, const void *key,
jpayne@69 77 unsigned char ivec[16], cbc128_f cbc);
jpayne@69 78 size_t CRYPTO_cts128_decrypt_block(const unsigned char *in,
jpayne@69 79 unsigned char *out, size_t len,
jpayne@69 80 const void *key, unsigned char ivec[16],
jpayne@69 81 block128_f block);
jpayne@69 82 size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,
jpayne@69 83 size_t len, const void *key,
jpayne@69 84 unsigned char ivec[16], cbc128_f cbc);
jpayne@69 85
jpayne@69 86 size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in,
jpayne@69 87 unsigned char *out, size_t len,
jpayne@69 88 const void *key,
jpayne@69 89 unsigned char ivec[16],
jpayne@69 90 block128_f block);
jpayne@69 91 size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out,
jpayne@69 92 size_t len, const void *key,
jpayne@69 93 unsigned char ivec[16], cbc128_f cbc);
jpayne@69 94 size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in,
jpayne@69 95 unsigned char *out, size_t len,
jpayne@69 96 const void *key,
jpayne@69 97 unsigned char ivec[16],
jpayne@69 98 block128_f block);
jpayne@69 99 size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out,
jpayne@69 100 size_t len, const void *key,
jpayne@69 101 unsigned char ivec[16], cbc128_f cbc);
jpayne@69 102
jpayne@69 103 typedef struct gcm128_context GCM128_CONTEXT;
jpayne@69 104
jpayne@69 105 GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block);
jpayne@69 106 void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block);
jpayne@69 107 void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv,
jpayne@69 108 size_t len);
jpayne@69 109 int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad,
jpayne@69 110 size_t len);
jpayne@69 111 int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
jpayne@69 112 const unsigned char *in, unsigned char *out,
jpayne@69 113 size_t len);
jpayne@69 114 int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
jpayne@69 115 const unsigned char *in, unsigned char *out,
jpayne@69 116 size_t len);
jpayne@69 117 int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,
jpayne@69 118 const unsigned char *in, unsigned char *out,
jpayne@69 119 size_t len, ctr128_f stream);
jpayne@69 120 int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,
jpayne@69 121 const unsigned char *in, unsigned char *out,
jpayne@69 122 size_t len, ctr128_f stream);
jpayne@69 123 int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag,
jpayne@69 124 size_t len);
jpayne@69 125 void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len);
jpayne@69 126 void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx);
jpayne@69 127
jpayne@69 128 typedef struct ccm128_context CCM128_CONTEXT;
jpayne@69 129
jpayne@69 130 void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx,
jpayne@69 131 unsigned int M, unsigned int L, void *key,
jpayne@69 132 block128_f block);
jpayne@69 133 int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce,
jpayne@69 134 size_t nlen, size_t mlen);
jpayne@69 135 void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad,
jpayne@69 136 size_t alen);
jpayne@69 137 int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp,
jpayne@69 138 unsigned char *out, size_t len);
jpayne@69 139 int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp,
jpayne@69 140 unsigned char *out, size_t len);
jpayne@69 141 int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp,
jpayne@69 142 unsigned char *out, size_t len,
jpayne@69 143 ccm128_f stream);
jpayne@69 144 int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp,
jpayne@69 145 unsigned char *out, size_t len,
jpayne@69 146 ccm128_f stream);
jpayne@69 147 size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len);
jpayne@69 148
jpayne@69 149 typedef struct xts128_context XTS128_CONTEXT;
jpayne@69 150
jpayne@69 151 int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx,
jpayne@69 152 const unsigned char iv[16],
jpayne@69 153 const unsigned char *inp, unsigned char *out,
jpayne@69 154 size_t len, int enc);
jpayne@69 155
jpayne@69 156 size_t CRYPTO_128_wrap(void *key, const unsigned char *iv,
jpayne@69 157 unsigned char *out,
jpayne@69 158 const unsigned char *in, size_t inlen,
jpayne@69 159 block128_f block);
jpayne@69 160
jpayne@69 161 size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv,
jpayne@69 162 unsigned char *out,
jpayne@69 163 const unsigned char *in, size_t inlen,
jpayne@69 164 block128_f block);
jpayne@69 165 size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv,
jpayne@69 166 unsigned char *out, const unsigned char *in,
jpayne@69 167 size_t inlen, block128_f block);
jpayne@69 168 size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv,
jpayne@69 169 unsigned char *out, const unsigned char *in,
jpayne@69 170 size_t inlen, block128_f block);
jpayne@69 171
jpayne@69 172 # ifndef OPENSSL_NO_OCB
jpayne@69 173 typedef struct ocb128_context OCB128_CONTEXT;
jpayne@69 174
jpayne@69 175 typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out,
jpayne@69 176 size_t blocks, const void *key,
jpayne@69 177 size_t start_block_num,
jpayne@69 178 unsigned char offset_i[16],
jpayne@69 179 const unsigned char L_[][16],
jpayne@69 180 unsigned char checksum[16]);
jpayne@69 181
jpayne@69 182 OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec,
jpayne@69 183 block128_f encrypt, block128_f decrypt,
jpayne@69 184 ocb128_f stream);
jpayne@69 185 int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec,
jpayne@69 186 block128_f encrypt, block128_f decrypt,
jpayne@69 187 ocb128_f stream);
jpayne@69 188 int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src,
jpayne@69 189 void *keyenc, void *keydec);
jpayne@69 190 int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv,
jpayne@69 191 size_t len, size_t taglen);
jpayne@69 192 int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad,
jpayne@69 193 size_t len);
jpayne@69 194 int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in,
jpayne@69 195 unsigned char *out, size_t len);
jpayne@69 196 int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in,
jpayne@69 197 unsigned char *out, size_t len);
jpayne@69 198 int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag,
jpayne@69 199 size_t len);
jpayne@69 200 int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len);
jpayne@69 201 void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx);
jpayne@69 202 # endif /* OPENSSL_NO_OCB */
jpayne@69 203
jpayne@69 204 # ifdef __cplusplus
jpayne@69 205 }
jpayne@69 206 # endif
jpayne@69 207
jpayne@69 208 #endif