003 File Manager
Current Path:
/usr/src/crypto/openssl/crypto/evp
usr
/
src
/
crypto
/
openssl
/
crypto
/
evp
/
📁
..
📄
bio_b64.c
(15.83 KB)
📄
bio_enc.c
(11.28 KB)
📄
bio_md.c
(4.96 KB)
📄
bio_ok.c
(15.88 KB)
📄
build.info
(1.04 KB)
📄
c_allc.c
(9.3 KB)
📄
c_alld.c
(1.78 KB)
📄
cmeth_lib.c
(4.56 KB)
📄
digest.c
(8.79 KB)
📄
e_aes.c
(142.86 KB)
📄
e_aes_cbc_hmac_sha1.c
(31.25 KB)
📄
e_aes_cbc_hmac_sha256.c
(31.07 KB)
📄
e_aria.c
(25.76 KB)
📄
e_bf.c
(1.16 KB)
📄
e_camellia.c
(13.64 KB)
📄
e_cast.c
(1.22 KB)
📄
e_chacha20_poly1305.c
(20.61 KB)
📄
e_des.c
(8.13 KB)
📄
e_des3.c
(14.19 KB)
📄
e_idea.c
(2.11 KB)
📄
e_null.c
(1.26 KB)
📄
e_old.c
(2.39 KB)
📄
e_rc2.c
(4.99 KB)
📄
e_rc4.c
(1.86 KB)
📄
e_rc4_hmac_md5.c
(7.7 KB)
📄
e_rc5.c
(2.21 KB)
📄
e_seed.c
(1.13 KB)
📄
e_sm4.c
(3.07 KB)
📄
e_xcbc_d.c
(2.38 KB)
📄
encode.c
(13.63 KB)
📄
evp_cnf.c
(1.65 KB)
📄
evp_enc.c
(20.93 KB)
📄
evp_err.c
(15.14 KB)
📄
evp_key.c
(4.08 KB)
📄
evp_lib.c
(11.76 KB)
📄
evp_local.h
(2.58 KB)
📄
evp_pbe.c
(7.52 KB)
📄
evp_pkey.c
(4 KB)
📄
m_md2.c
(1.14 KB)
📄
m_md4.c
(1.14 KB)
📄
m_md5.c
(1.14 KB)
📄
m_md5_sha1.c
(3.2 KB)
📄
m_mdc2.c
(1.15 KB)
📄
m_null.c
(918 B)
📄
m_ripemd.c
(1.21 KB)
📄
m_sha1.c
(5.95 KB)
📄
m_sha3.c
(13.38 KB)
📄
m_sigver.c
(7 KB)
📄
m_wp.c
(1.17 KB)
📄
names.c
(4.74 KB)
📄
p5_crpt.c
(3.13 KB)
📄
p5_crpt2.c
(7.81 KB)
📄
p_dec.c
(980 B)
📄
p_enc.c
(984 B)
📄
p_lib.c
(16.59 KB)
📄
p_open.c
(1.77 KB)
📄
p_seal.c
(1.73 KB)
📄
p_sign.c
(1.7 KB)
📄
p_verify.c
(1.59 KB)
📄
pbe_scrypt.c
(7.38 KB)
📄
pmeth_fn.c
(9.59 KB)
📄
pmeth_gn.c
(6.01 KB)
📄
pmeth_lib.c
(27.12 KB)
Editing: evp_key.c
/* * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ #include <stdio.h> #include "internal/cryptlib.h" #include <openssl/x509.h> #include <openssl/objects.h> #include <openssl/evp.h> #include <openssl/ui.h> /* should be init to zeros. */ static char prompt_string[80]; void EVP_set_pw_prompt(const char *prompt) { if (prompt == NULL) prompt_string[0] = '\0'; else { strncpy(prompt_string, prompt, 79); prompt_string[79] = '\0'; } } char *EVP_get_pw_prompt(void) { if (prompt_string[0] == '\0') return NULL; else return prompt_string; } /* * For historical reasons, the standard function for reading passwords is in * the DES library -- if someone ever wants to disable DES, this function * will fail */ int EVP_read_pw_string(char *buf, int len, const char *prompt, int verify) { return EVP_read_pw_string_min(buf, 0, len, prompt, verify); } int EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt, int verify) { int ret = -1; char buff[BUFSIZ]; UI *ui; if ((prompt == NULL) && (prompt_string[0] != '\0')) prompt = prompt_string; ui = UI_new(); if (ui == NULL) return ret; if (UI_add_input_string(ui, prompt, 0, buf, min, (len >= BUFSIZ) ? BUFSIZ - 1 : len) < 0 || (verify && UI_add_verify_string(ui, prompt, 0, buff, min, (len >= BUFSIZ) ? BUFSIZ - 1 : len, buf) < 0)) goto end; ret = UI_process(ui); OPENSSL_cleanse(buff, BUFSIZ); end: UI_free(ui); return ret; } int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, const unsigned char *salt, const unsigned char *data, int datal, int count, unsigned char *key, unsigned char *iv) { EVP_MD_CTX *c; unsigned char md_buf[EVP_MAX_MD_SIZE]; int niv, nkey, addmd = 0; unsigned int mds = 0, i; int rv = 0; nkey = EVP_CIPHER_key_length(type); niv = EVP_CIPHER_iv_length(type); OPENSSL_assert(nkey <= EVP_MAX_KEY_LENGTH); OPENSSL_assert(niv <= EVP_MAX_IV_LENGTH); if (data == NULL) return nkey; c = EVP_MD_CTX_new(); if (c == NULL) goto err; for (;;) { if (!EVP_DigestInit_ex(c, md, NULL)) goto err; if (addmd++) if (!EVP_DigestUpdate(c, &(md_buf[0]), mds)) goto err; if (!EVP_DigestUpdate(c, data, datal)) goto err; if (salt != NULL) if (!EVP_DigestUpdate(c, salt, PKCS5_SALT_LEN)) goto err; if (!EVP_DigestFinal_ex(c, &(md_buf[0]), &mds)) goto err; for (i = 1; i < (unsigned int)count; i++) { if (!EVP_DigestInit_ex(c, md, NULL)) goto err; if (!EVP_DigestUpdate(c, &(md_buf[0]), mds)) goto err; if (!EVP_DigestFinal_ex(c, &(md_buf[0]), &mds)) goto err; } i = 0; if (nkey) { for (;;) { if (nkey == 0) break; if (i == mds) break; if (key != NULL) *(key++) = md_buf[i]; nkey--; i++; } } if (niv && (i != mds)) { for (;;) { if (niv == 0) break; if (i == mds) break; if (iv != NULL) *(iv++) = md_buf[i]; niv--; i++; } } if ((nkey == 0) && (niv == 0)) break; } rv = EVP_CIPHER_key_length(type); err: EVP_MD_CTX_free(c); OPENSSL_cleanse(md_buf, sizeof(md_buf)); return rv; }
Upload File
Create Folder