summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjpierre%netscape.com <devnull@localhost>2003-03-11 03:38:54 +0000
committerjpierre%netscape.com <devnull@localhost>2003-03-11 03:38:54 +0000
commit726316c91aa52da0bcdfc85a13e55ba2f0b931ec (patch)
treed275116f296fe9fb2c521c128c3f4a7f36127073
parentfadeba7a701e9636f6562e3e38aac98812612440 (diff)
downloadnss-hg-726316c91aa52da0bcdfc85a13e55ba2f0b931ec.tar.gz
Fix for 192590 - add ability to encode NSSCMSRecipientInfo . r=javi, wtc
-rw-r--r--security/nss/lib/smime/cms.h6
-rw-r--r--security/nss/lib/smime/cmsrecinfo.c15
-rw-r--r--security/nss/lib/smime/smime.def1
3 files changed, 22 insertions, 0 deletions
diff --git a/security/nss/lib/smime/cms.h b/security/nss/lib/smime/cms.h
index f6b806fa3..0538f1a37 100644
--- a/security/nss/lib/smime/cms.h
+++ b/security/nss/lib/smime/cms.h
@@ -903,6 +903,12 @@ NSS_CMSRecipientInfo_GetVersion(NSSCMSRecipientInfo *ri);
extern SECItem *
NSS_CMSRecipientInfo_GetEncryptedKey(NSSCMSRecipientInfo *ri, int subIndex);
+/*
+ * NSS_CMSRecipientInfo_Encode - encode an NSS_CMSRecipientInfo as ASN.1
+ */
+SECStatus NSS_CMSRecipientInfo_Encode(PRArenaPool* poolp,
+ const NSSCMSRecipientInfo *src,
+ SECItem* returned);
extern SECOidTag
NSS_CMSRecipientInfo_GetKeyEncryptionAlgorithmTag(NSSCMSRecipientInfo *ri);
diff --git a/security/nss/lib/smime/cmsrecinfo.c b/security/nss/lib/smime/cmsrecinfo.c
index 7e706ae7f..ac460f5bd 100644
--- a/security/nss/lib/smime/cmsrecinfo.c
+++ b/security/nss/lib/smime/cmsrecinfo.c
@@ -716,3 +716,18 @@ SECStatus NSS_CMSRecipientInfo_GetCertAndKey(NSSCMSRecipientInfo *ri,
return rv;
}
+
+SECStatus NSS_CMSRecipientInfo_Encode(PRArenaPool* poolp,
+ const NSSCMSRecipientInfo *src,
+ SECItem* returned)
+{
+ extern const SEC_ASN1Template NSSCMSRecipientInfoTemplate[];
+ SECStatus rv = SECFailure;
+ if (!src || !returned) {
+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
+ } else if (SEC_ASN1EncodeItem(poolp, returned, src,
+ NSSCMSRecipientInfoTemplate)) {
+ rv = SECSuccess;
+ }
+ return rv;
+}
diff --git a/security/nss/lib/smime/smime.def b/security/nss/lib/smime/smime.def
index 9cdeb658f..ac0bbd408 100644
--- a/security/nss/lib/smime/smime.def
+++ b/security/nss/lib/smime/smime.def
@@ -234,6 +234,7 @@ NSS_CMSRecipientInfo_UnwrapBulkKey;
;+ global:
NSS_CMSRecipientInfo_CreateNew;
NSS_CMSRecipientInfo_CreateFromDER;
+NSS_CMSRecipientInfo_Encode;
NSS_CMSRecipientInfo_GetCertAndKey;
;+ local:
;+ *;