diff options
author | jpierre%netscape.com <devnull@localhost> | 2003-03-11 03:38:54 +0000 |
---|---|---|
committer | jpierre%netscape.com <devnull@localhost> | 2003-03-11 03:38:54 +0000 |
commit | 726316c91aa52da0bcdfc85a13e55ba2f0b931ec (patch) | |
tree | d275116f296fe9fb2c521c128c3f4a7f36127073 | |
parent | fadeba7a701e9636f6562e3e38aac98812612440 (diff) | |
download | nss-hg-726316c91aa52da0bcdfc85a13e55ba2f0b931ec.tar.gz |
Fix for 192590 - add ability to encode NSSCMSRecipientInfo . r=javi, wtc
-rw-r--r-- | security/nss/lib/smime/cms.h | 6 | ||||
-rw-r--r-- | security/nss/lib/smime/cmsrecinfo.c | 15 | ||||
-rw-r--r-- | security/nss/lib/smime/smime.def | 1 |
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: ;+ *; |