New functions for PKCS8 attributes management
authorDmitry Belyavskiy <beldmit@gmail.com>
Mon, 20 Jan 2020 13:01:02 +0000 (16:01 +0300)
committerDmitry Belyavskiy <beldmit@gmail.com>
Fri, 24 Jan 2020 12:09:05 +0000 (15:09 +0300)
This commit introduces functions PKCS8_pkey_add1_attr_by_OBJ and PKCS8_pkey_add1_attr

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/10900)

crypto/asn1/p8_pkey.c
include/openssl/x509.h
util/libcrypto.num

index c55353ae112c22fad9e860583f0bd90856bd2365..77e64a9ac1b5fdca5b37f5c21ad75a5ca54621cc 100644 (file)
@@ -78,3 +78,14 @@ int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type,
         return 1;
     return 0;
 }
+
+int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, int type,
+                                const unsigned char *bytes, int len)
+{
+    return (X509at_add1_attr_by_OBJ(&p8->attributes, obj, type, bytes, len) != NULL);
+}
+
+int PKCS8_pkey_add1_attr(PKCS8_PRIV_KEY_INFO *p8, X509_ATTRIBUTE *attr)
+{
+    return (X509at_add1_attr(&p8->attributes, attr) != NULL);
+}
index 9d8cc03c53e75ebd26afdeb5e3f0e25d1f141cb8..4cd17d24f5d3dc4670eeb907a40dbf7bb4c2240a 100644 (file)
@@ -1034,8 +1034,12 @@ int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg,
 
 const STACK_OF(X509_ATTRIBUTE) *
 PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8);
+int PKCS8_pkey_add1_attr(PKCS8_PRIV_KEY_INFO *p8, X509_ATTRIBUTE *attr);
 int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type,
                                 const unsigned char *bytes, int len);
+int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj,
+                                int type, const unsigned char *bytes, int len);
+
 
 int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj,
                            int ptype, void *pval,
index d0443c2f7789a29258e227d4b942088d8d1edfcc..439a7a11c753ea310fa939873525c8ef45080256 100644 (file)
@@ -4913,3 +4913,5 @@ ASN1_GENERALIZEDTIME_dup                ? 3_0_0   EXIST::FUNCTION:
 RAND_priv_bytes_ex                      ?      3_0_0   EXIST::FUNCTION:
 RAND_bytes_ex                           ?      3_0_0   EXIST::FUNCTION:
 EVP_PKEY_get_default_digest_name        ?      3_0_0   EXIST::FUNCTION:
+PKCS8_pkey_add1_attr                    ?      3_0_0   EXIST::FUNCTION:
+PKCS8_pkey_add1_attr_by_OBJ             ?      3_0_0   EXIST::FUNCTION: