Latest update.
This commit is contained in:
@@ -18,6 +18,10 @@
|
||||
#include "crypto/asn1.h"
|
||||
#include "crypto/evp.h"
|
||||
|
||||
DEFINE_STACK_OF(CMS_RecipientInfo)
|
||||
DEFINE_STACK_OF(CMS_RevocationInfoChoice)
|
||||
DEFINE_STACK_OF(X509_ATTRIBUTE)
|
||||
|
||||
/* CMS EnvelopedData Utilities */
|
||||
|
||||
static void cms_env_set_version(CMS_EnvelopedData *env);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2008-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -19,6 +19,9 @@
|
||||
#include "crypto/ess.h"
|
||||
#include "crypto/cms.h"
|
||||
|
||||
DEFINE_STACK_OF(GENERAL_NAMES)
|
||||
DEFINE_STACK_OF(CMS_SignerInfo)
|
||||
|
||||
IMPLEMENT_ASN1_FUNCTIONS(CMS_ReceiptRequest)
|
||||
|
||||
/* ESS services */
|
||||
|
||||
+24
-20
@@ -17,6 +17,8 @@
|
||||
#include "cms_local.h"
|
||||
#include "crypto/asn1.h"
|
||||
|
||||
DEFINE_STACK_OF(CMS_RecipientEncryptedKey)
|
||||
|
||||
/* Key Agreement Recipient Info (KARI) routines */
|
||||
|
||||
int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri,
|
||||
@@ -380,27 +382,27 @@ int cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip, EVP_PKEY *r
|
||||
if (!cms_kari_create_ephemeral_key(kari, recipPubKey))
|
||||
return 0;
|
||||
} else {
|
||||
/* Use originator key */
|
||||
CMS_OriginatorIdentifierOrKey *oik = ri->d.kari->originator;
|
||||
/* Use originator key */
|
||||
CMS_OriginatorIdentifierOrKey *oik = ri->d.kari->originator;
|
||||
|
||||
if (originatorPrivKey == NULL && originator == NULL)
|
||||
if (originatorPrivKey == NULL || originator == NULL)
|
||||
return 0;
|
||||
|
||||
if (flags & CMS_USE_ORIGINATOR_KEYID) {
|
||||
oik->type = CMS_OIK_KEYIDENTIFIER;
|
||||
oik->d.subjectKeyIdentifier = ASN1_OCTET_STRING_new();
|
||||
if (oik->d.subjectKeyIdentifier == NULL)
|
||||
return 0;
|
||||
if (!cms_set1_keyid(&oik->d.subjectKeyIdentifier, originator))
|
||||
return 0;
|
||||
} else {
|
||||
oik->type = CMS_REK_ISSUER_SERIAL;
|
||||
if (!cms_set1_ias(&oik->d.issuerAndSerialNumber, originator))
|
||||
return 0;
|
||||
}
|
||||
if (flags & CMS_USE_ORIGINATOR_KEYID) {
|
||||
oik->type = CMS_OIK_KEYIDENTIFIER;
|
||||
oik->d.subjectKeyIdentifier = ASN1_OCTET_STRING_new();
|
||||
if (oik->d.subjectKeyIdentifier == NULL)
|
||||
return 0;
|
||||
if (!cms_set1_keyid(&oik->d.subjectKeyIdentifier, originator))
|
||||
return 0;
|
||||
} else {
|
||||
oik->type = CMS_REK_ISSUER_SERIAL;
|
||||
if (!cms_set1_ias(&oik->d.issuerAndSerialNumber, originator))
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!cms_kari_set_originator_private_key(kari, originatorPrivKey))
|
||||
return 0;
|
||||
if (!cms_kari_set_originator_private_key(kari, originatorPrivKey))
|
||||
return 0;
|
||||
}
|
||||
|
||||
EVP_PKEY_up_ref(recipPubKey);
|
||||
@@ -413,7 +415,7 @@ static int cms_wrap_init(CMS_KeyAgreeRecipientInfo *kari,
|
||||
{
|
||||
EVP_CIPHER_CTX *ctx = kari->ctx;
|
||||
const EVP_CIPHER *kekcipher;
|
||||
int keylen = EVP_CIPHER_key_length(cipher);
|
||||
int keylen;
|
||||
int ret;
|
||||
|
||||
/* If a suitable wrap algorithm is already set nothing to do */
|
||||
@@ -423,8 +425,10 @@ static int cms_wrap_init(CMS_KeyAgreeRecipientInfo *kari,
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
else if (cipher != NULL
|
||||
&& (EVP_CIPHER_flags(cipher) & EVP_CIPH_FLAG_GET_WRAP_CIPHER)) {
|
||||
if (cipher == NULL)
|
||||
return 0;
|
||||
keylen = EVP_CIPHER_key_length(cipher);
|
||||
if ((EVP_CIPHER_flags(cipher) & EVP_CIPH_FLAG_GET_WRAP_CIPHER) != 0) {
|
||||
ret = EVP_CIPHER_meth_get_ctrl(cipher)(NULL, EVP_CTRL_GET_WRAP_CIPHER,
|
||||
0, &kekcipher);
|
||||
if (ret <= 0)
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
#include <openssl/cms.h>
|
||||
#include "cms_local.h"
|
||||
|
||||
DEFINE_STACK_OF(CMS_RevocationInfoChoice)
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(X509_CRL)
|
||||
|
||||
IMPLEMENT_ASN1_FUNCTIONS(CMS_ContentInfo)
|
||||
IMPLEMENT_ASN1_PRINT_FUNCTION(CMS_ContentInfo)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2009-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -18,6 +18,8 @@
|
||||
#include "cms_local.h"
|
||||
#include "crypto/asn1.h"
|
||||
|
||||
DEFINE_STACK_OF(CMS_RecipientInfo)
|
||||
|
||||
int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,
|
||||
unsigned char *pass, ossl_ssize_t passlen)
|
||||
{
|
||||
|
||||
+10
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2008-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -21,6 +21,12 @@
|
||||
#include "crypto/cms.h"
|
||||
#include "crypto/ess.h"
|
||||
|
||||
DEFINE_STACK_OF(CMS_RevocationInfoChoice)
|
||||
DEFINE_STACK_OF(CMS_SignerInfo)
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(X509_ALGOR)
|
||||
DEFINE_STACK_OF(X509_ATTRIBUTE)
|
||||
|
||||
/* CMS SignedData Utilities */
|
||||
|
||||
static CMS_SignedData *cms_get0_signed(CMS_ContentInfo *cms)
|
||||
@@ -944,8 +950,10 @@ int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs,
|
||||
ASN1_INTEGER *key = NULL;
|
||||
if (keysize > 0) {
|
||||
key = ASN1_INTEGER_new();
|
||||
if (key == NULL || !ASN1_INTEGER_set(key, keysize))
|
||||
if (key == NULL || !ASN1_INTEGER_set(key, keysize)) {
|
||||
ASN1_INTEGER_free(key);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
alg = X509_ALGOR_new();
|
||||
if (alg == NULL) {
|
||||
|
||||
@@ -16,6 +16,12 @@
|
||||
#include "cms_local.h"
|
||||
#include "crypto/asn1.h"
|
||||
|
||||
DEFINE_STACK_OF(CMS_SignerInfo)
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(X509_CRL)
|
||||
DEFINE_STACK_OF(CMS_RecipientEncryptedKey)
|
||||
DEFINE_STACK_OF(CMS_RecipientInfo)
|
||||
|
||||
static BIO *cms_get_text_bio(BIO *out, unsigned int flags)
|
||||
{
|
||||
BIO *rbio;
|
||||
|
||||
Reference in New Issue
Block a user