Team Ai
Datasetpublic

codekingpro/portable-devtools

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