codekingpro/portable-devtools
115k
1/*2 * Copyright 2002-2020 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_AES_H11# define OPENSSL_AES_H12# pragma once13 14# include <openssl/macros.h>15# ifndef OPENSSL_NO_DEPRECATED_3_016# define HEADER_AES_H17# endif18 19# include <openssl/opensslconf.h>20 21# include <stddef.h>22# ifdef __cplusplus23extern "C" {24# endif25 26# define AES_BLOCK_SIZE 1627 28# ifndef OPENSSL_NO_DEPRECATED_3_029 30# define AES_ENCRYPT 131# define AES_DECRYPT 032 33# define AES_MAXNR 1434 35 36/* This should be a hidden type, but EVP requires that the size be known */37struct aes_key_st {38# ifdef AES_LONG39 unsigned long rd_key[4 * (AES_MAXNR + 1)];40# else41 unsigned int rd_key[4 * (AES_MAXNR + 1)];42# endif43 int rounds;44};45typedef struct aes_key_st AES_KEY;46 47# endif48# ifndef OPENSSL_NO_DEPRECATED_3_049OSSL_DEPRECATEDIN_3_0 const char *AES_options(void);50OSSL_DEPRECATEDIN_3_051int AES_set_encrypt_key(const unsigned char *userKey, const int bits,52 AES_KEY *key);53OSSL_DEPRECATEDIN_3_054int AES_set_decrypt_key(const unsigned char *userKey, const int bits,55 AES_KEY *key);56OSSL_DEPRECATEDIN_3_057void AES_encrypt(const unsigned char *in, unsigned char *out,58 const AES_KEY *key);59OSSL_DEPRECATEDIN_3_060void AES_decrypt(const unsigned char *in, unsigned char *out,61 const AES_KEY *key);62OSSL_DEPRECATEDIN_3_063void AES_ecb_encrypt(const unsigned char *in, unsigned char *out,64 const AES_KEY *key, const int enc);65OSSL_DEPRECATEDIN_3_066void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,67 size_t length, const AES_KEY *key,68 unsigned char *ivec, const int enc);69OSSL_DEPRECATEDIN_3_070void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,71 size_t length, const AES_KEY *key,72 unsigned char *ivec, int *num, const int enc);73OSSL_DEPRECATEDIN_3_074void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,75 size_t length, const AES_KEY *key,76 unsigned char *ivec, int *num, const int enc);77OSSL_DEPRECATEDIN_3_078void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,79 size_t length, const AES_KEY *key,80 unsigned char *ivec, int *num, const int enc);81OSSL_DEPRECATEDIN_3_082void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,83 size_t length, const AES_KEY *key,84 unsigned char *ivec, int *num);85 86/* NB: the IV is _two_ blocks long */87OSSL_DEPRECATEDIN_3_088void AES_ige_encrypt(const unsigned char *in, unsigned char *out,89 size_t length, const AES_KEY *key,90 unsigned char *ivec, const int enc);91/* NB: the IV is _four_ blocks long */92OSSL_DEPRECATEDIN_3_093void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,94 size_t length, const AES_KEY *key, const AES_KEY *key2,95 const unsigned char *ivec, const int enc);96OSSL_DEPRECATEDIN_3_097int AES_wrap_key(AES_KEY *key, const unsigned char *iv,98 unsigned char *out, const unsigned char *in,99 unsigned int inlen);100OSSL_DEPRECATEDIN_3_0101int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,102 unsigned char *out, const unsigned char *in,103 unsigned int inlen);104# endif105 106 107# ifdef __cplusplus108}109# endif110 111#endif112 