diff options
| author | beck <> | 2000-12-15 02:58:47 +0000 |
|---|---|---|
| committer | beck <> | 2000-12-15 02:58:47 +0000 |
| commit | 9200bb13d15da4b2a23e6bc92c20e95b74aa2113 (patch) | |
| tree | 5c52d628ec1e34be76e7ef2a4235d248b7c44d24 /src/lib/libcrypto/evp/p_seal.c | |
| parent | e131d25072e3d4197ba4b9bcc0d1b27d34d6488d (diff) | |
| download | openbsd-9200bb13d15da4b2a23e6bc92c20e95b74aa2113.tar.gz openbsd-9200bb13d15da4b2a23e6bc92c20e95b74aa2113.tar.bz2 openbsd-9200bb13d15da4b2a23e6bc92c20e95b74aa2113.zip | |
openssl-engine-0.9.6 merge
Diffstat (limited to 'src/lib/libcrypto/evp/p_seal.c')
| -rw-r--r-- | src/lib/libcrypto/evp/p_seal.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/lib/libcrypto/evp/p_seal.c b/src/lib/libcrypto/evp/p_seal.c index d449e892bf..2fd1d7e0c2 100644 --- a/src/lib/libcrypto/evp/p_seal.c +++ b/src/lib/libcrypto/evp/p_seal.c | |||
| @@ -72,18 +72,21 @@ int EVP_SealInit(EVP_CIPHER_CTX *ctx, EVP_CIPHER *type, unsigned char **ek, | |||
| 72 | unsigned char key[EVP_MAX_KEY_LENGTH]; | 72 | unsigned char key[EVP_MAX_KEY_LENGTH]; |
| 73 | int i; | 73 | int i; |
| 74 | 74 | ||
| 75 | if(type) { | ||
| 76 | EVP_CIPHER_CTX_init(ctx); | ||
| 77 | if(!EVP_EncryptInit(ctx,type,NULL,NULL)) return 0; | ||
| 78 | } | ||
| 75 | if (npubk <= 0) return(0); | 79 | if (npubk <= 0) return(0); |
| 76 | if (RAND_bytes(key,EVP_MAX_KEY_LENGTH) <= 0) | 80 | if (RAND_bytes(key,EVP_MAX_KEY_LENGTH) <= 0) |
| 77 | return(0); | 81 | return(0); |
| 78 | if (type->iv_len > 0) | 82 | if (EVP_CIPHER_CTX_iv_length(ctx)) |
| 79 | RAND_pseudo_bytes(iv,type->iv_len); | 83 | RAND_pseudo_bytes(iv,EVP_CIPHER_CTX_iv_length(ctx)); |
| 80 | 84 | ||
| 81 | EVP_CIPHER_CTX_init(ctx); | 85 | if(!EVP_EncryptInit(ctx,NULL,key,iv)) return 0; |
| 82 | EVP_EncryptInit(ctx,type,key,iv); | ||
| 83 | 86 | ||
| 84 | for (i=0; i<npubk; i++) | 87 | for (i=0; i<npubk; i++) |
| 85 | { | 88 | { |
| 86 | ekl[i]=EVP_PKEY_encrypt(ek[i],key,EVP_CIPHER_key_length(type), | 89 | ekl[i]=EVP_PKEY_encrypt(ek[i],key,EVP_CIPHER_CTX_key_length(ctx), |
| 87 | pubk[i]); | 90 | pubk[i]); |
| 88 | if (ekl[i] <= 0) return(-1); | 91 | if (ekl[i] <= 0) return(-1); |
| 89 | } | 92 | } |
