1/* 2 * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the Apache License 2.0 (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10#include <stdio.h> 11#include "internal/cryptlib.h" 12#include <openssl/evp.h> 13#include <openssl/objects.h> 14#include "crypto/evp.h" 15 16static int null_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 17 const unsigned char *iv, int enc); 18static int null_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 19 const unsigned char *in, size_t inl); 20static const EVP_CIPHER n_cipher = { 21 NID_undef, 22 1, 0, 0, 0, 23 EVP_ORIG_GLOBAL, 24 null_init_key, 25 null_cipher, 26 NULL, 27 0, 28 NULL, 29 NULL, 30 NULL, 31 NULL 32}; 33 34const EVP_CIPHER *EVP_enc_null(void) 35{ 36 return &n_cipher; 37} 38 39static int null_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 40 const unsigned char *iv, int enc) 41{ 42 return 1; 43} 44 45static int null_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 46 const unsigned char *in, size_t inl) 47{ 48 if (in != out) 49 memcpy(out, in, inl); 50 return 1; 51} 52