diff options
Diffstat (limited to 'third_party/boringssl/src/crypto/cipher/internal.h')
-rw-r--r-- | third_party/boringssl/src/crypto/cipher/internal.h | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/third_party/boringssl/src/crypto/cipher/internal.h b/third_party/boringssl/src/crypto/cipher/internal.h deleted file mode 100644 index b2a94f4446..0000000000 --- a/third_party/boringssl/src/crypto/cipher/internal.h +++ /dev/null @@ -1,161 +0,0 @@ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] */ - -#ifndef OPENSSL_HEADER_CIPHER_INTERNAL_H -#define OPENSSL_HEADER_CIPHER_INTERNAL_H - -#include <openssl/base.h> - -#include <openssl/aead.h> - -#if defined(__cplusplus) -extern "C" { -#endif - - -/* EVP_CIPH_MODE_MASK contains the bits of |flags| that represent the mode. */ -#define EVP_CIPH_MODE_MASK 0x3f - - -/* EVP_AEAD represents a specific AEAD algorithm. */ -struct evp_aead_st { - uint8_t key_len; - uint8_t nonce_len; - uint8_t overhead; - uint8_t max_tag_len; - - /* init initialises an |EVP_AEAD_CTX|. If this call returns zero then - * |cleanup| will not be called for that context. */ - int (*init)(EVP_AEAD_CTX *, const uint8_t *key, size_t key_len, - size_t tag_len); - int (*init_with_direction)(EVP_AEAD_CTX *, const uint8_t *key, size_t key_len, - size_t tag_len, enum evp_aead_direction_t dir); - void (*cleanup)(EVP_AEAD_CTX *); - - int (*seal)(const EVP_AEAD_CTX *ctx, uint8_t *out, size_t *out_len, - size_t max_out_len, const uint8_t *nonce, size_t nonce_len, - const uint8_t *in, size_t in_len, const uint8_t *ad, - size_t ad_len); - - int (*open)(const EVP_AEAD_CTX *ctx, uint8_t *out, size_t *out_len, - size_t max_out_len, const uint8_t *nonce, size_t nonce_len, - const uint8_t *in, size_t in_len, const uint8_t *ad, - size_t ad_len); - - int (*get_rc4_state)(const EVP_AEAD_CTX *ctx, const RC4_KEY **out_key); -}; - - -/* EVP_tls_cbc_get_padding determines the padding from the decrypted, TLS, CBC - * record in |in|. This decrypted record should not include any "decrypted" - * explicit IV. It sets |*out_len| to the length with the padding removed or - * |in_len| if invalid. - * - * block_size: the block size of the cipher used to encrypt the record. - * returns: - * 0: (in non-constant time) if the record is publicly invalid. - * 1: if the padding was valid - * -1: otherwise. */ -int EVP_tls_cbc_remove_padding(unsigned *out_len, - const uint8_t *in, unsigned in_len, - unsigned block_size, unsigned mac_size); - -/* EVP_tls_cbc_copy_mac copies |md_size| bytes from the end of the first - * |in_len| bytes of |in| to |out| in constant time (independent of the concrete - * value of |in_len|, which may vary within a 256-byte window). |in| must point - * to a buffer of |orig_len| bytes. - * - * On entry: - * orig_len >= in_len >= md_size - * md_size <= EVP_MAX_MD_SIZE */ -void EVP_tls_cbc_copy_mac(uint8_t *out, unsigned md_size, - const uint8_t *in, unsigned in_len, - unsigned orig_len); - -/* EVP_tls_cbc_record_digest_supported returns 1 iff |md| is a hash function - * which EVP_tls_cbc_digest_record supports. */ -int EVP_tls_cbc_record_digest_supported(const EVP_MD *md); - -/* EVP_tls_cbc_digest_record computes the MAC of a decrypted, padded TLS - * record. - * - * md: the hash function used in the HMAC. - * EVP_tls_cbc_record_digest_supported must return true for this hash. - * md_out: the digest output. At most EVP_MAX_MD_SIZE bytes will be written. - * md_out_size: the number of output bytes is written here. - * header: the 13-byte, TLS record header. - * data: the record data itself - * data_plus_mac_size: the secret, reported length of the data and MAC - * once the padding has been removed. - * data_plus_mac_plus_padding_size: the public length of the whole - * record, including padding. - * - * On entry: by virtue of having been through one of the remove_padding - * functions, above, we know that data_plus_mac_size is large enough to contain - * a padding byte and MAC. (If the padding was invalid, it might contain the - * padding too. ) */ -int EVP_tls_cbc_digest_record(const EVP_MD *md, uint8_t *md_out, - size_t *md_out_size, const uint8_t header[13], - const uint8_t *data, size_t data_plus_mac_size, - size_t data_plus_mac_plus_padding_size, - const uint8_t *mac_secret, - unsigned mac_secret_length); - -#if defined(__cplusplus) -} /* extern C */ -#endif - -#endif /* OPENSSL_HEADER_CIPHER_INTERNAL_H */ |