Where Online Learning is simpler!
The C and C++ Include Header Files
cat -n /usr/include/openssl/seed.h
1 /* 2 * Copyright 2007-2020 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 /* 11 * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following conditions 15 * are met: 16 * 1. Redistributions of source code must retain the above copyright 17 * notice, this list of conditions and the following disclaimer. 18 * 2. Neither the name of author nor the names of its contributors may 19 * be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND 23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 */ 34 35 #ifndef OPENSSL_SEED_H 36 #define OPENSSL_SEED_H 37 #pragma once 38 39 #include <openssl/macros.h> 40 #ifndef OPENSSL_NO_DEPRECATED_3_0 41 #define HEADER_SEED_H 42 #endif 43 44 #include <openssl/opensslconf.h> 45 46 #ifndef OPENSSL_NO_SEED 47 #include <openssl/e_os2.h> 48 #include <openssl/crypto.h> 49 #include <sys/types.h> 50 51 #ifdef __cplusplus 52 extern "C" { 53 #endif 54 55 #define SEED_BLOCK_SIZE 16 56 #define SEED_KEY_LENGTH 16 57 58 #ifndef OPENSSL_NO_DEPRECATED_3_0 59 /* look whether we need 'long' to get 32 bits */ 60 #ifdef AES_LONG 61 #ifndef SEED_LONG 62 #define SEED_LONG 1 63 #endif 64 #endif 65 66 typedef struct seed_key_st { 67 #ifdef SEED_LONG 68 unsigned long data[32]; 69 #else 70 unsigned int data[32]; 71 #endif 72 } SEED_KEY_SCHEDULE; 73 #endif /* OPENSSL_NO_DEPRECATED_3_0 */ 74 #ifndef OPENSSL_NO_DEPRECATED_3_0 75 OSSL_DEPRECATEDIN_3_0 76 void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], 77 SEED_KEY_SCHEDULE *ks); 78 OSSL_DEPRECATEDIN_3_0 79 void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], 80 unsigned char d[SEED_BLOCK_SIZE], 81 const SEED_KEY_SCHEDULE *ks); 82 OSSL_DEPRECATEDIN_3_0 83 void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], 84 unsigned char d[SEED_BLOCK_SIZE], 85 const SEED_KEY_SCHEDULE *ks); 86 OSSL_DEPRECATEDIN_3_0 87 void SEED_ecb_encrypt(const unsigned char *in, 88 unsigned char *out, 89 const SEED_KEY_SCHEDULE *ks, int enc); 90 OSSL_DEPRECATEDIN_3_0 91 void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, 92 const SEED_KEY_SCHEDULE *ks, 93 unsigned char ivec[SEED_BLOCK_SIZE], 94 int enc); 95 OSSL_DEPRECATEDIN_3_0 96 void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, 97 size_t len, const SEED_KEY_SCHEDULE *ks, 98 unsigned char ivec[SEED_BLOCK_SIZE], 99 int *num, int enc); 100 OSSL_DEPRECATEDIN_3_0 101 void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, 102 size_t len, const SEED_KEY_SCHEDULE *ks, 103 unsigned char ivec[SEED_BLOCK_SIZE], 104 int *num); 105 #endif 106 107 #ifdef __cplusplus 108 } 109 #endif 110 #endif 111 112 #endif