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 c55353a..77e64a9 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 9d8cc03..4cd17d2 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 d0443c2..439a7a1 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: