diff options
Diffstat (limited to 'security/nss/lib/pkix/include')
-rw-r--r-- | security/nss/lib/pkix/include/nsspkix.h | 24377 | ||||
-rw-r--r-- | security/nss/lib/pkix/include/nsspkixt.h | 2281 | ||||
-rw-r--r-- | security/nss/lib/pkix/include/pkix.h | 26086 | ||||
-rw-r--r-- | security/nss/lib/pkix/include/pkixm.h | 969 | ||||
-rw-r--r-- | security/nss/lib/pkix/include/pkixt.h | 57 | ||||
-rw-r--r-- | security/nss/lib/pkix/include/pkixtm.h | 1581 |
6 files changed, 55351 insertions, 0 deletions
diff --git a/security/nss/lib/pkix/include/nsspkix.h b/security/nss/lib/pkix/include/nsspkix.h new file mode 100644 index 000000000..6e55be3a9 --- /dev/null +++ b/security/nss/lib/pkix/include/nsspkix.h @@ -0,0 +1,24377 @@ +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is the Netscape security libraries. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1994-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the + * terms of the GNU General Public License Version 2 or later (the + * "GPL"), in which case the provisions of the GPL are applicable + * instead of those above. If you wish to allow use of your + * version of this file only under the terms of the GPL and not to + * allow others to use your version of this file under the MPL, + * indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by + * the GPL. If you do not delete the provisions above, a recipient + * may use your version of this file under either the MPL or the + * GPL. + */ + +#ifndef NSSPKIX_H +#define NSSPKIX_H + +#ifdef DEBUG +static const char NSSPKIX_CVS_ID[] = "@(#) $Source$ $Revision$ $Date$ $Name$"; +#endif /* DEBUG */ + +/* + * nsspkix.h + * + * This file contains the prototypes for the public methods defined + * for the PKIX part-1 objects. + */ + +#ifndef NSSPKIXT_H +#include "nsspkixt.h" +#endif /* NSSPKIXT_H */ + +PR_BEGIN_EXTERN_C + +/* + * Attribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Attribute ::= SEQUENCE { + * type AttributeType, + * values SET OF AttributeValue + * -- at least one value is required -- } + * + * The public calls for the type: + * + * NSSPKIXAttribute_Decode + * NSSPKIXAttribute_Create + * NSSPKIXAttribute_CreateFromArray + * NSSPKIXAttribute_Destroy + * NSSPKIXAttribute_Encode + * NSSPKIXAttribute_GetType + * NSSPKIXAttribute_SetType + * NSSPKIXAttribute_GetValueCount + * NSSPKIXAttribute_GetValues + * NSSPKIXAttribute_SetValues + * NSSPKIXAttribute_GetValue + * NSSPKIXAttribute_SetValue + * NSSPKIXAttribute_AddValue + * NSSPKIXAttribute_RemoveValue + * NSSPKIXAttribute_FindValue + * NSSPKIXAttribute_Equal + * NSSPKIXAttribute_Duplicate + * + */ + +/* + * NSSPKIXAttribute_Decode + * + * This routine creates an NSSPKIXAttribute by decoding a BER- + * or DER-encoded Attribute as defined in RFC 2459. This + * routine may return NULL upon error, in which case it will + * have created an error stack. If the optional arena argument + * is non-NULL, that arena will be used for the required memory. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +NSSPKIXAttribute_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXAttribute_Create + * + * This routine creates an NSSPKIXAttribute from specified components. + * This routine may return NULL upon error, in which case it will have + * created an error stack. If the optional arena argument is non-NULL, + * that arena will be used for the required memory. There must be at + * least one attribute value specified. The final argument must be + * NULL, to indicate the end of the set of attribute values. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +NSSPKIXAttribute_Create +( + NSSArena *arenaOpt, + NSSPKIXAttributeType *typeOid, + NSSPKIXAttributeValue *value1, + ... +); + +/* + * NSSPKIXAttribute_CreateFromArray + * + * This routine creates an NSSPKIXAttribute from specified components. + * This routine may return NULL upon error, in which case it will have + * created an error stack. If the optional arena argument is non-NULL, + * that arena will be used for the required memory. There must be at + * least one attribute value specified. The final argument must be + * NULL, to indicate the end of the set of attribute values. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +NSSPKIXAttribute_CreateFromArray +( + NSSArena *arenaOpt, + NSSPKIXAttributeType *typeOid, + PRUint32 count, + NSSPKIXAttributeValue values[] +); + +/* + * NSSPKIXAttribute_Destroy + * + * This routine destroys an NSSPKIXAttribute. It should be called on + * all such objects created without an arena. It does not need to be + * called for objects created with an arena, but it may be. This + * routine returns a PRStatus value. Upon error, it will create an + * error stack and return PR_FAILURE. + * + * The error value may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttribute_Destroy +( + NSSPKIXAttribute *attribute +); + +/* + * NSSPKIXAttribute_Encode + * + * This routine returns the BER encoding of the specified + * NSSPKIXAttribute. {usual rules about itemOpt and arenaOpt} + * This routine indicates an error (NSS_ERROR_INVALID_DATA) + * if there are no attribute values (i.e., the last one was removed). + * + * The error value may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_DATA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXAttribute_Encode +( + NSSPKIXAttribute *attribute, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAttribute_GetType + * + * This routine returns the attribute type oid of the specified + * NSSPKIXAttribute. + * + * The error value may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSPKIXAttributeType pointer upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttributeType * +NSSPKIXAttribute_GetType +( + NSSPKIXAttribute *attribute +); + +/* + * NSSPKIXAttribute_SetType + * + * This routine sets the attribute type oid of the indicated + * NSSPKIXAttribute to the specified value. Since attributes + * may be application-defined, no checking can be done on + * either the correctness of the attribute type oid value nor + * the suitability of the set of attribute values. + * + * The error value may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_OID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttribute_SetType +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeType *attributeType +); + +/* + * NSSPKIXAttribute_GetValueCount + * + * This routine returns the number of attribute values present in + * the specified NSSPKIXAttribute. This routine returns a PRInt32. + * Upon error, this routine returns -1. This routine indicates an + * error if the number of values cannot be expressed as a PRInt32. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXAttribute_GetValueCount +( + NSSPKIXAttribute *attribute +); + +/* + * NSSPKIXAttribute_GetValues + * + * This routine returns all of the attribute values in the specified + * NSSPKIXAttribute. If the optional pointer to an array of NSSItems + * is non-null, then that array will be used and returned; otherwise, + * an array will be allocated and returned. If the limit is nonzero + * (which is must be if the specified array is nonnull), then an + * error is indicated if it is smaller than the value count. + * {arenaOpt} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSItem's upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttributeValue * +NSSPKIXAttribute_GetValues +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeValue rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAttribute_SetValues + * + * This routine sets all of the values of the specified + * NSSPKIXAttribute to the values in the specified NSSItem array. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_POINTER + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttribute_SetValues +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeValue values[], + PRInt32 count +); + +/* + * NSSPKIXAttribute_GetValue + * + * This routine returns the i'th attribute value of the set of + * values in the specified NSSPKIXAttribute. Although the set + * is unordered, an arbitrary ordering will be maintained until + * the data in the attribute is changed. {usual comments about + * itemOpt and arenaOpt} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAttributeValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeValue * +NSSPKIXAttribute_GetValue +( + NSSPKIXAttribute *attribute, + PRInt32 i, + NSSPKIXAttributeValue *itemOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAttribute_SetValue + * + * This routine sets the i'th attribute value {blah blah; copies + * memory contents over..} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttribute_SetValue +( + NSSPKIXAttribute *attribute, + PRInt32 i, + NSSPKIXAttributeValue *value +); + +/* + * NSSPKIXAttribute_AddValue + * + * This routine adds the specified attribute value to the set in + * the specified NSSPKIXAttribute. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttribute_AddValue +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeValue *value +); + +/* + * NSSPKIXAttribute_RemoveValue + * + * This routine removes the i'th attribute value of the set in the + * specified NSSPKIXAttribute. An attempt to remove the last value + * will fail. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_AT_MINIMUM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttribute_RemoveValue +( + NSSPKIXAttribute *attribute, + PRInt32 i +); + +/* + * NSSPKIXAttribute_FindValue + * + * This routine searches the set of attribute values in the specified + * NSSPKIXAttribute for the provided data. If an exact match is found, + * then that value's index is returned. If an exact match is not + * found, -1 is returned. If there is more than one exact match, one + * index will be returned. {notes about unorderdness of SET, etc} + * If the index may not be represented as an integer, an error is + * indicated. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value + * The index of the specified attribute value upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXAttribute_FindValue +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeValue *attributeValue +); + +/* + * NSSPKIXAttribute_Equal + * + * This routine compares two NSSPKIXAttribute's for equality. + * It returns PR_TRUE if they are equal, PR_FALSE otherwise. + * This routine also returns PR_FALSE upon error; if you're + * that worried about it, check for an error stack. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXAttribute_Equal +( + NSSPKIXAttribute *one, + NSSPKIXAttribute *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXAttribute_Duplicate + * + * This routine duplicates an NSSPKIXAttribute. {arenaOpt} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +NSSPKIXAttribute_Duplicate +( + NSSPKIXAttribute *attribute, + NSSArena *arenaOpt +); + +/* + * AttributeTypeAndValue + * + * This structure contains an attribute type (indicated by an OID), + * and the type-specific value. RelativeDistinguishedNames consist + * of a set of these. These are distinct from Attributes (which have + * SET of values), from AttributeDescriptions (which have qualifiers + * on the types), and from AttributeValueAssertions (which assert a + * a value comparison under some matching rule). + * + * From RFC 2459: + * + * AttributeTypeAndValue ::= SEQUENCE { + * type AttributeType, + * value AttributeValue } + * + * The public calls for the type: + * + * NSSPKIXAttributeTypeAndValue_Decode + * NSSPKIXAttributeTypeAndValue_CreateFromUTF8 + * NSSPKIXAttributeTypeAndValue_Create + * NSSPKIXAttributeTypeAndValue_Destroy + * NSSPKIXAttributeTypeAndValue_Encode + * NSSPKIXAttributeTypeAndValue_GetUTF8Encoding + * NSSPKIXAttributeTypeAndValue_GetType + * NSSPKIXAttributeTypeAndValue_SetType + * NSSPKIXAttributeTypeAndValue_GetValue + * NSSPKIXAttributeTypeAndValue_SetValue + * NSSPKIXAttributeTypeAndValue_Equal + * NSSPKIXAttributeTypeAndValue_Duplicate + */ + +/* + * NSSPKIXAttributeTypeAndValue_Decode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +NSSPKIXAttributeTypeAndValue_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXAttributeTypeAndValue_CreateFromUTF8 + * + * + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_UNKNOWN_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +NSSPKIXAttributeTypeAndValue_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *string +); + +/* + * NSSPKIXAttributeTypeAndValue_Create + * + * + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +NSSPKIXAttributeTypeAndValue_Create +( + NSSArena *arenaOpt, + NSSPKIXAttributeType *typeOid, + NSSPKIXAttributeValue *value +); + +/* + * NSSPKIXAttributeTypeAndValue_Destroy + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttributeTypeAndValue_Destroy +( + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * NSSPKIXAttributeTypeAndValue_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXAttributeTypeAndValue_Encode +( + NSSPKIXAttributeTypeAndValue *atav, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAttributeTypeAndValue_GetUTF8Encoding + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXAttributeTypeAndValue_GetUTF8Encoding +( + NSSPKIXAttributeTypeAndValue *atav, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAttributeTypeAndValue_GetType + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSPKIXAttributeType pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeType * +NSSPKIXAttributeTypeAndValue_GetType +( + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * NSSPKIXAttributeTypeAndValue_SetType + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_OID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttributeTypeAndValue_SetType +( + NSSPKIXAttributeTypeAndValue *atav, + NSSPKIXAttributeType *attributeType +); + +/* + * NSSPKIXAttributeTypeAndValue_GetValue + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSAttributeValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeValue * +NSSPKIXAttributeTypeAndValue_GetValue +( + NSSPKIXAttributeTypeAndValue *atav, + NSSPKIXAttributeValue *itemOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAttributeTypeAndValue_SetValue + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAttributeTypeAndValue_SetValue +( + NSSPKIXAttributeTypeAndValue *atav, + NSSPKIXAttributeValue *value +); + +/* + * NSSPKIXAttributeTypeAndValue_Equal + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXAttributeTypeAndValue_Equal +( + NSSPKIXAttributeTypeAndValue *atav1, + NSSPKIXAttributeTypeAndValue *atav2, + PRStatus *statusOpt +); + +/* + * NSSPKIXAttributeTypeAndValue_Duplicate + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +NSSPKIXAttributeTypeAndValue_Duplicate +( + NSSPKIXAttributeTypeAndValue *atav, + NSSArena *arenaOpt +); + +/* + * X520Name + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520name ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-name)), + * printableString PrintableString (SIZE (1..ub-name)), + * universalString UniversalString (SIZE (1..ub-name)), + * utf8String UTF8String (SIZE (1..ub-name)), + * bmpString BMPString (SIZE(1..ub-name)) } + * + * ub-name INTEGER ::= 32768 + * + * The public calls for this type: + * + * NSSPKIXX520Name_Decode + * NSSPKIXX520Name_CreateFromUTF8 + * NSSPKIXX520Name_Create (?) + * NSSPKIXX520Name_Destroy + * NSSPKIXX520Name_Encode + * NSSPKIXX520Name_GetUTF8Encoding + * NSSPKIXX520Name_Equal + * NSSPKIXX520Name_Duplicate + * + * The public data for this type: + * + * NSSPKIXX520Name_MAXIMUM_LENGTH + * + */ + +/* + * NSSPKIXX520Name_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Name upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Name * +NSSPKIXX520Name_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520Name_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Name upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Name * +NSSPKIXX520Name_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520Name_Create + * + * XXX fgmr: currently nssStringType is a private type. Thus, + * this public method should not exist. I'm leaving this here + * to remind us later what we want to decide. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING_TYPE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXX520Name upon success + * NULL upon failure + */ + +/* + * NSS_EXTERN NSSPKIXX520Name * + * NSSPKIXX520Name_Create + * ( + * NSSArena *arenaOpt, + * nssStringType type, + * NSSItem *data + * ); + */ + +/* + * NSSPKIXX520Name_Destroy + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520Name_Destroy +( + NSSPKIXX520Name *name +); + +/* + * NSSPKIXX520Name_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520Name_Encode +( + NSSPKIXX520Name *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXX520Name_GetUTF8Encoding + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXX520Name_GetUTF8Encoding +( + NSSPKIXX520Name *name, + NSSArena *arenaOpt +); + +/* + * NSSPKIXX520Name_Equal + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXX520Name_Equal +( + NSSPKIXX520Name *name1, + NSSPKIXX520Name *name2, + PRStatus *statusOpt +); + +/* + * NSSPKIXX520Name_Duplicate + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Name upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Name * +NSSPKIXX520Name_Duplicate +( + NSSPKIXX520Name *name, + NSSArena *arenaOpt +); + +/* + * NSSPKIXX520Name_MAXIMUM_LENGTH + * + * From RFC 2459: + * + * ub-name INTEGER ::= 32768 + */ + +extern const PRUint32 NSSPKIXX520Name_MAXIMUM_LENGTH; + +/* + * X520CommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520CommonName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-common-name)), + * printableString PrintableString (SIZE (1..ub-common-name)), + * universalString UniversalString (SIZE (1..ub-common-name)), + * utf8String UTF8String (SIZE (1..ub-common-name)), + * bmpString BMPString (SIZE(1..ub-common-name)) } + * + * ub-common-name INTEGER ::= 64 + * + * The public calls for this type: + * + * NSSPKIXX520CommonName_Decode + * NSSPKIXX520CommonName_CreateFromUTF8 + * NSSPKIXX520CommonName_Create (?) + * NSSPKIXX520CommonName_Destroy + * NSSPKIXX520CommonName_Encode + * NSSPKIXX520CommonName_GetUTF8Encoding + * NSSPKIXX520CommonName_Equal + * NSSPKIXX520CommonName_Duplicate + * + * The public data for this type: + * + * NSSPKIXX520CommonName_MAXIMUM_LENGTH + * + */ + +/* + * NSSPKIXX520CommonName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520CommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520CommonName * +NSSPKIXX520CommonName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520CommonName_Create + * + * XXX fgmr: currently nssStringType is a private type. Thus, + * this public method should not exist. I'm leaving this here + * to remind us later what we want to decide. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING_TYPE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXX520CommonName upon success + * NULL upon failure + */ + +/* + * NSS_EXTERN NSSPKIXX520CommonName * + * NSSPKIXX520CommonName_Create + * ( + * NSSArena *arenaOpt, + * nssStringType type, + * NSSItem *data + * ); + */ + +/* + * NSSPKIXX520CommonName_Destroy + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_COMMON_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520CommonName_Destroy +( + NSSPKIXX520CommonName *name +); + +/* + * NSSPKIXX520CommonName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520CommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520CommonName * +NSSPKIXX520CommonName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520CommonName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_COMMON_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520CommonName_Encode +( + NSSPKIXX520CommonName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXX520CommonName_GetUTF8Encoding + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_COMMON_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXX520CommonName_GetUTF8Encoding +( + NSSPKIXX520CommonName *name, + NSSArena *arenaOpt +); + +/* + * NSSPKIXX520CommonName_Equal + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_COMMON_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXX520CommonName_Equal +( + NSSPKIXX520CommonName *name1, + NSSPKIXX520CommonName *name2, + PRStatus *statusOpt +); + +/* + * NSSPKIXX520CommonName_Duplicate + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_COMMON_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520CommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520CommonName * +NSSPKIXX520CommonName_Duplicate +( + NSSPKIXX520CommonName *name, + NSSArena *arenaOpt +); + +/* + * NSSPKIXX520CommonName_MAXIMUM_LENGTH + * + * From RFC 2459: + * + * ub-common-name INTEGER ::= 64 + */ + +extern const PRUint32 NSSPKIXX520CommonName_MAXIMUM_LENGTH; + +/* + * X520LocalityName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520LocalityName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-locality-name)), + * printableString PrintableString (SIZE (1..ub-locality-name)), + * universalString UniversalString (SIZE (1..ub-locality-name)), + * utf8String UTF8String (SIZE (1..ub-locality-name)), + * bmpString BMPString (SIZE(1..ub-locality-name)) } + * + * The public calls for this type: + * + * NSSPKIXX520LocalityName_Decode + * NSSPKIXX520LocalityName_CreateFromUTF8 + * NSSPKIXX520LocalityName_Encode + * + */ + +/* + * NSSPKIXX520LocalityName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520LocalityName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520LocalityName * +NSSPKIXX520LocalityName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520LocalityName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520LocalityName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520LocalityName * +NSSPKIXX520LocalityName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520LocalityName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520LocalityName_Encode +( + NSSPKIXX520LocalityName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520StateOrProvinceName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520StateOrProvinceName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-state-name)), + * printableString PrintableString (SIZE (1..ub-state-name)), + * universalString UniversalString (SIZE (1..ub-state-name)), + * utf8String UTF8String (SIZE (1..ub-state-name)), + * bmpString BMPString (SIZE(1..ub-state-name)) } + * + * The public calls for this type: + * + * NSSPKIXX520StateOrProvinceName_Decode + * NSSPKIXX520StateOrProvinceName_CreateFromUTF8 + * NSSPKIXX520StateOrProvinceName_Encode + * + */ + +/* + * NSSPKIXX520StateOrProvinceName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520StateOrProvinceName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520StateOrProvinceName * +NSSPKIXX520StateOrProvinceName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520StateOrProvinceName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520StateOrProvinceName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520StateOrProvinceName * +NSSPKIXX520StateOrProvinceName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520StateOrProvinceName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520StateOrProvinceName_Encode +( + NSSPKIXX520StateOrProvinceName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520OrganizationName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520OrganizationName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-organization-name)), + * printableString PrintableString (SIZE (1..ub-organization-name)), + * universalString UniversalString (SIZE (1..ub-organization-name)), + * utf8String UTF8String (SIZE (1..ub-organization-name)), + * bmpString BMPString (SIZE(1..ub-organization-name)) } + * + * The public calls for this type: + * + * NSSPKIXX520OrganizationName_Decode + * NSSPKIXX520OrganizationName_CreateFromUTF8 + * NSSPKIXX520OrganizationName_Encode + * + */ + +/* + * NSSPKIXX520OrganizationName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520OrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520OrganizationName * +NSSPKIXX520OrganizationName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520OrganizationName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520OrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520OrganizationName * +NSSPKIXX520OrganizationName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520OrganizationName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520OrganizationName_Encode +( + NSSPKIXX520OrganizationName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520OrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520OrganizationalUnitName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-organizational-unit-name)), + * printableString PrintableString + * (SIZE (1..ub-organizational-unit-name)), + * universalString UniversalString + * (SIZE (1..ub-organizational-unit-name)), + * utf8String UTF8String (SIZE (1..ub-organizational-unit-name)), + * bmpString BMPString (SIZE(1..ub-organizational-unit-name)) } + * + * The public calls for this type: + * + * NSSPKIXX520OrganizationalUnitName_Decode + * NSSPKIXX520OrganizationalUnitName_CreateFromUTF8 + * NSSPKIXX520OrganizationalUnitName_Encode + * + */ + +/* + * NSSPKIXX520OrganizationalUnitName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520OrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520OrganizationalUnitName * +NSSPKIXX520OrganizationalUnitName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520OrganizationalUnitName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520OrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520OrganizationalUnitName * +NSSPKIXX520OrganizationalUnitName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520OrganizationalUnitName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520OrganizationalUnitName_Encode +( + NSSPKIXX520OrganizationalUnitName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520Title + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520Title ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-title)), + * printableString PrintableString (SIZE (1..ub-title)), + * universalString UniversalString (SIZE (1..ub-title)), + * utf8String UTF8String (SIZE (1..ub-title)), + * bmpString BMPString (SIZE(1..ub-title)) } + * + * The public calls for this type: + * + * NSSPKIXX520Title_Decode + * NSSPKIXX520Title_CreateFromUTF8 + * NSSPKIXX520Title_Encode + * + */ + +/* + * NSSPKIXX520Title_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Title upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Title * +NSSPKIXX520Title_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520Title_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Title upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Title * +NSSPKIXX520Title_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520Title_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520Title_Encode +( + NSSPKIXX520Title *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520dnQualifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520dnQualifier ::= PrintableString + * + * The public calls for this type: + * + * NSSPKIXX520dnQualifier_Decode + * NSSPKIXX520dnQualifier_CreateFromUTF8 + * NSSPKIXX520dnQualifier_Encode + * + */ + +/* + * NSSPKIXX520dnQualifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520dnQualifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520dnQualifier * +NSSPKIXX520dnQualifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520dnQualifier_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520dnQualifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520dnQualifier * +NSSPKIXX520dnQualifier_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520dnQualifier_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520dnQualifier_Encode +( + NSSPKIXX520dnQualifier *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520countryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520countryName ::= PrintableString (SIZE (2)) -- IS 3166 codes + * + * The public calls for this type: + * + * NSSPKIXX520countryName_Decode + * NSSPKIXX520countryName_CreateFromUTF8 + * NSSPKIXX520countryName_Encode + * + */ + +/* + * NSSPKIXX520countryName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520countryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520countryName * +NSSPKIXX520countryName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX520countryName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520countryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520countryName * +NSSPKIXX520countryName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX520countryName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX520countryName_Encode +( + NSSPKIXX520countryName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * Pkcs9email + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Pkcs9email ::= IA5String (SIZE (1..ub-emailaddress-length)) + * + * The public calls for this type: + * + * NSSPKIXPkcs9email_Decode + * NSSPKIXPkcs9email_CreateFromUTF8 + * NSSPKIXPkcs9email_Encode + * + */ + +/* + * NSSPKIXPkcs9email_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPkcs9email upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPkcs9email * +NSSPKIXPkcs9email_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPkcs9email_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPkcs9email upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPkcs9email * +NSSPKIXPkcs9email_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXPkcs9email_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPkcs9email_Encode +( + NSSPKIXPkcs9email *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * Name + * + * This structure contains a union of the possible name formats, + * which at the moment is limited to an RDNSequence. + * + * From RFC 2459: + * + * Name ::= CHOICE { -- only one possibility for now -- + * rdnSequence RDNSequence } + * + * The public calls for this type: + * + * NSSPKIXName_Decode + * NSSPKIXName_CreateFromUTF8 + * NSSPKIXName_Create + * NSSPKIXName_CreateFromRDNSequence + * NSSPKIXName_Destroy + * NSSPKIXName_Encode + * NSSPKIXName_GetUTF8Encoding + * NSSPKIXName_GetChoice + * NSSPKIXName_GetRDNSequence + * NSSPKIXName_GetSpecifiedChoice {fgmr remove this} + * NSSPKIXName_SetRDNSequence + * NSSPKIXName_SetSpecifiedChoice + * NSSPKIXName_Equal + * NSSPKIXName_Duplicate + * + * (here is where I had specific attribute value gettors in pki1) + * + */ + +/* + * NSSPKIXName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXName_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_UNKNOWN_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *string +); + +/* + * NSSPKIXName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_CHOICE + * NSS_ERROR_INVALID_ARGUMENT + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXName_Create +( + NSSArena *arenaOpt, + NSSPKIXNameChoice choice, + void *arg +); + +/* + * NSSPKIXName_CreateFromRDNSequence + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXName_CreateFromRDNSequence +( + NSSArena *arenaOpt, + NSSPKIXRDNSequence *rdnSequence +); + +/* + * NSSPKIXName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXName_Destroy +( + NSSPKIXName *name +); + +/* + * NSSPKIXName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXName_Encode +( + NSSPKIXName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXName_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXName_GetUTF8Encoding +( + NSSPKIXName *name, + NSSArena *arenaOpt +); + +/* + * NSSPKIXName_GetChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * A valid element of the NSSPKIXNameChoice enumeration upon success + * The value NSSPKIXNameChoice_NSSinvalid (-1) upon error + */ + +NSS_EXTERN NSSPKIXNameChoice +NSSPKIXName_GetChoice +( + NSSPKIXName *name +); + +/* + * NSSPKIXName_GetRDNSequence + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A pointer to a valid NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +NSSPKIXName_GetRDNSequence +( + NSSPKIXName *name, + NSSArena *arenaOpt +); + +/* + * NSSPKIXName_GetSpecifiedChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A valid pointer ... + * NULL upon failure + */ + +NSS_EXTERN void * +NSSPKIXName_GetSpecifiedChoice +( + NSSPKIXName *name, + NSSPKIXNameChoice choice, + NSSArena *arenaOpt +); + +/* + * NSSPKIXName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXName_Equal +( + NSSPKIXName *name1, + NSSPKIXName *name2, + PRStatus *statusOpt +); + +/* + * NSSPKIXName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXName_Duplicate +( + NSSPKIXName *name, + NSSArena *arenaOpt +); + +/* + * RDNSequence + * + * This structure contains a sequence of RelativeDistinguishedName + * objects. + * + * From RFC 2459: + * + * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName + * + * The public calls for this type: + * + * NSSPKIXRDNSequence_Decode + * NSSPKIXRDNSequence_CreateFromUTF8 + * NSSPKIXRDNSequence_Create + * NSSPKIXRDNSequence_CreateFromArray + * NSSPKIXRDNSequence_Destroy + * NSSPKIXRDNSequence_Encode + * NSSPKIXRDNSequence_GetUTF8Encoding + * NSSPKIXRDNSequence_GetRelativeDistinguishedNameCount + * NSSPKIXRDNSequence_GetRelativeDistinguishedNames + * NSSPKIXRDNSequence_SetRelativeDistinguishedNames + * NSSPKIXRDNSequence_GetRelativeDistinguishedName + * NSSPKIXRDNSequence_SetRelativeDistinguishedName + * NSSPKIXRDNSequence_AppendRelativeDistinguishedName + * NSSPKIXRDNSequence_InsertRelativeDistinguishedName + * NSSPKIXRDNSequence_RemoveRelativeDistinguishedName + * NSSPKIXRDNSequence_FindRelativeDistinguishedName + * NSSPKIXRDNSequence_Equal + * NSSPKIXRDNSequence_Duplicate + * + */ + +/* + * NSSPKIXRDNSequence_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +NSSPKIXRDNSequence_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXRDNSequence_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_UNKNOWN_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +NSSPKIXRDNSequence_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *string +); + +/* + * NSSPKIXRDNSequence_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +NSSPKIXRDNSequence_Create +( + NSSArena *arenaOpt, + NSSPKIXRelativeDistinguishedName *rdn1, + ... +); + +/* + * NSSPKIXRDNSequence_CreateFromArray + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +NSSPKIXRDNSequence_Create +( + NSSArena *arenaOpt, + PRUint32 count, + NSSPKIXRelativeDistinguishedName *rdns[] +); + +/* + * NSSPKIXRDNSequence_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRDNSequence_Destroy +( + NSSPKIXRDNSequence *rdnseq +); + +/* + * NSSPKIXRDNSequence_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXRDNSequence_Encode +( + NSSPKIXRDNSequence *rdnseq, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXRDNSequence_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXRDNSequence_GetUTF8Encoding +( + NSSPKIXRDNSequence *rdnseq, + NSSArena *arenaOpt +); + +/* + * NSSPKIXRDNSequence_GetRelativeDistinguishedNameCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXRDNSequence_GetRelativeDistinguishedNameCount +( + NSSPKIXRDNSequence *rdnseq +); + +/* + * NSSPKIXRDNSequence_GetRelativeDistinguishedNames + * + * This routine returns all of the relative distinguished names in the + * specified RDN Sequence. {...} If the array is allocated, or if the + * specified one has extra space, the array will be null-terminated. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXRelativeDistinguishedName + * pointers upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName ** +NSSPKIXRDNSequence_GetRelativeDistinguishedNames +( + NSSPKIXRDNSequence *rdnseq, + NSSPKIXRelativeDistinguishedName *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXRDNSequence_SetRelativeDistinguishedNames + * + * -- fgmr comments -- + * If the array pointer itself is null, the set is considered empty. + * If the count is zero but the pointer nonnull, the array will be + * assumed to be null-terminated. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRDNSequence_SetRelativeDistinguishedNames +( + NSSPKIXRDNSequence *rdnseq, + NSSPKIXRelativeDistinguishedName *rdns[], + PRInt32 countOpt +); + +/* + * NSSPKIXRDNSequence_GetRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +NSSPKIXRDNSequence_GetRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXRDNSequence_SetRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRDNSequence_SetRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + PRInt32 i, + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * NSSPKIXRDNSequence_AppendRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRDNSequence_AppendRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * NSSPKIXRDNSequence_InsertRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRDNSequence_InsertRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + PRInt32 i, + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * NSSPKIXRDNSequence_RemoveRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRDNSequence_RemoveRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + PRInt32 i +); + +/* + * NSSPKIXRDNSequence_FindRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified attribute value upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXRDNSequence_FindRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * NSSPKIXRDNSequence_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXRDNSequence_Equal +( + NSSPKIXRDNSequence *one, + NSSPKIXRDNSequence *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXRDNSequence_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +NSSPKIXRDNSequence_Duplicate +( + NSSPKIXRDNSequence *rdnseq, + NSSArena *arenaOpt +); + +/* + * DistinguishedName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistinguishedName ::= RDNSequence + * + * This is just a public typedef; no new methods are required. {fgmr-- right?} + */ + +/* + * RelativeDistinguishedName + * + * This structure contains an unordered set of AttributeTypeAndValue + * objects. RDNs are used to distinguish a set of objects underneath + * a common object. + * + * Often, a single ATAV is sufficient to make a unique distinction. + * For example, if a company assigns its people unique uid values, + * then in the Name "uid=smith,ou=People,o=Acme,c=US" the "uid=smith" + * ATAV by itself forms an RDN. However, sometimes a set of ATAVs is + * needed. For example, if a company needed to distinguish between + * two Smiths by specifying their corporate divisions, then in the + * Name "(cn=Smith,ou=Sales),ou=People,o=Acme,c=US" the parenthesised + * set of ATAVs forms the RDN. + * + * From RFC 2459: + * + * RelativeDistinguishedName ::= + * SET SIZE (1 .. MAX) OF AttributeTypeAndValue + * + * The public calls for this type: + * + * NSSPKIXRelativeDistinguishedName_Decode + * NSSPKIXRelativeDistinguishedName_CreateFromUTF8 + * NSSPKIXRelativeDistinguishedName_Create + * NSSPKIXRelativeDistinguishedName_CreateFromArray + * NSSPKIXRelativeDistinguishedName_Destroy + * NSSPKIXRelativeDistinguishedName_Encode + * NSSPKIXRelativeDistinguishedName_GetUTF8Encoding + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValueCount + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValues + * NSSPKIXRelativeDistinguishedName_SetAttributeTypeAndValues + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_SetAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_AddAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_RemoveAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_FindAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_Equal + * NSSPKIXRelativeDistinguishedName_Duplicate + * + * fgmr: Logical additional functions include + * + * NSSPKIXRelativeDistinguishedName_FindAttributeTypeAndValueByType + * returns PRInt32 + * NSSPKIXRelativeDistinguishedName_FindAttributeTypeAndValuesByType + * returns array of PRInt32 + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValueForType + * returns NSSPKIXAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValuesForType + * returns array of NSSPKIXAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_GetAttributeValueForType + * returns NSSPKIXAttributeValue + * NSSPKIXRelativeDistinguishedName_GetAttributeValuesForType + * returns array of NSSPKIXAttributeValue + * + * NOTE: the "return array" versions are only meaningful if an RDN may + * contain multiple ATAVs with the same type. Verify in the RFC if + * this is possible or not. If not, nuke those three functions. + * + */ + +/* + * NSSPKIXRelativeDistinguishedName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +NSSPKIXRelativeDistinguishedName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXRelativeDistinguishedName_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_UNKNOWN_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +NSSPKIXRelativeDistinguishedName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *string +); + +/* + * NSSPKIXRelativeDistinguishedName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ATAV + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +NSSPKIXRelativeDistinguishedName_Create +( + NSSArena *arenaOpt, + NSSPKIXAttributeTypeAndValue *atav1, + ... +); + +/* + * NSSPKIXRelativeDistinguishedName_CreateFromArray + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ATAV + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +NSSPKIXRelativeDistinguishedName_CreateFromArray +( + NSSArena *arenaOpt, + PRUint32 count, + NSSPKIXAttributeTypeAndValue *atavs[] +); + +/* + * NSSPKIXRelativeDistinguishedName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRelativeDistinguishedName_Destroy +( + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * NSSPKIXRelativeDistinguishedName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXRelativeDistinguishedName_Encode +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXRelativeDistinguishedName_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXRelativeDistinguishedName_GetUTF8Encoding +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSArena *arenaOpt +); + +/* + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValueCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValueCount +( + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValues + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXAttributeTypeAndValue + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue ** +NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValues +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSPKIXAttributeTypeAndValue *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXRelativeDistinguishedName_SetAttributeTypeAndValues + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ATAV + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRelativeDistinguishedName_SetAttributeTypeAndValues +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSPKIXAttributeTypeAndValue *atavs[], + PRInt32 countOpt +); + +/* + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXRelativeDistinguishedName_SetAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRelativeDistinguishedName_SetAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + PRInt32 i, + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * NSSPKIXRelativeDistinguishedName_AddAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRelativeDistinguishedName_AddAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * NSSPKIXRelativeDistinguishedName_RemoveAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_AT_MINIMUM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXRelativeDistinguishedName_RemoveAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + PRInt32 i +); + +/* + * NSSPKIXRelativeDistinguishedName_FindAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified attribute value upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXRelativeDistinguishedName_FindAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * NSSPKIXRelativeDistinguishedName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXRelativeDistinguishedName_Equal +( + NSSPKIXRelativeDistinguishedName *one, + NSSPKIXRelativeDistinguishedName *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXRelativeDistinguishedName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +NSSPKIXRelativeDistinguishedName_Duplicate +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSArena *arenaOpt +); + +/* + * DirectoryString + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DirectoryString ::= CHOICE { + * teletexString TeletexString (SIZE (1..MAX)), + * printableString PrintableString (SIZE (1..MAX)), + * universalString UniversalString (SIZE (1..MAX)), + * utf8String UTF8String (SIZE (1..MAX)), + * bmpString BMPString (SIZE(1..MAX)) } + * + * The public calls for this type: + * + * NSSPKIXDirectoryString_Decode + * NSSPKIXDirectoryString_CreateFromUTF8 + * NSSPKIXDirectoryString_Encode + * + */ + +/* + * NSSPKIXDirectoryString_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDirectoryString upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDirectoryString * +NSSPKIXDirectoryString_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXDirectoryString_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDirectoryString upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDirectoryString * +NSSPKIXDirectoryString_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXDirectoryString_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_DIRECTORY_STRING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXDirectoryString_Encode +( + NSSPKIXDirectoryString *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * Certificate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Certificate ::= SEQUENCE { + * tbsCertificate TBSCertificate, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING } + * + * The public calls for this type: + * + * NSSPKIXCertificate_Decode + * NSSPKIXCertificate_Create + * NSSPKIXCertificate_Destroy + * NSSPKIXCertificate_Encode + * NSSPKIXCertificate_GetTBSCertificate + * NSSPKIXCertificate_SetTBSCertificate + * NSSPKIXCertificate_GetAlgorithmIdentifier + * NSSPKIXCertificate_SetAlgorithmIdentifier + * NSSPKIXCertificate_GetSignature + * NSSPKIXCertificate_SetSignature + * NSSPKIXCertificate_Equal + * NSSPKIXCertificate_Duplicate + * + * { inherit TBSCertificate gettors? } + * + */ + +/* + * NSSPKIXCertificate_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificate * +NSSPKIXCertificate_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXCertificate_Create + * + * -- fgmr comments -- + * { at this level we'll have to just accept a specified signature } + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_ALGID + * NSS_ERROR_INVALID_PKIX_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificate * +NSSPKIXCertificate_Create +( + NSSArena *arenaOpt, + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXAlgorithmIdentifier *algID, + NSSItem *signature +); + +/* + * NSSPKIXCertificate_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificate_Destroy +( + NSSPKIXCertificate *cert +); + +/* + * NSSPKIXCertificate_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXCertificate_Encode +( + NSSPKIXCertificate *cert, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificate_GetTBSCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertificate * +NSSPKIXCertificate_GetTBSCertificate +( + NSSPKIXCertificate *cert, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificate_SetTBSCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificate_SetTBSCertificate +( + NSSPKIXCertificate *cert, + NSSPKIXTBSCertificate *tbsCert +); + +/* + * NSSPKIXCertificate_GetAlgorithmIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +NSSPKIXCertificate_GetAlgorithmIdentifier +( + NSSPKIXCertificate *cert, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificate_SetAlgorithmIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificate_SetAlgorithmIdentifier +( + NSSPKIXCertificate *cert, + NSSPKIXAlgorithmIdentifier *algid, +); + +/* + * NSSPKIXCertificate_GetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +NSSPKIXCertificate_GetSignature +( + NSSPKIXCertificate *cert, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificate_SetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_POINTER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificate_SetSignature +( + NSSPKIXCertificate *cert, + NSSItem *signature +); + +/* + * NSSPKIXCertificate_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXCertificate_Equal +( + NSSPKIXCertificate *one, + NSSPKIXCertificate *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXCertificate_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificate * +NSSPKIXCertificate_Duplicate +( + NSSPKIXCertificate *cert, + NSSArena *arenaOpt +); + +/* + * TBSCertificate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TBSCertificate ::= SEQUENCE { + * version [0] Version DEFAULT v1, + * serialNumber CertificateSerialNumber, + * signature AlgorithmIdentifier, + * issuer Name, + * validity Validity, + * subject Name, + * subjectPublicKeyInfo SubjectPublicKeyInfo, + * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * extensions [3] Extensions OPTIONAL + * -- If present, version shall be v3 -- } + * + * The public calls for this type: + * + * NSSPKIXTBSCertificate_Decode + * NSSPKIXTBSCertificate_Create + * NSSPKIXTBSCertificate_Destroy + * NSSPKIXTBSCertificate_Encode + * NSSPKIXTBSCertificate_GetVersion + * NSSPKIXTBSCertificate_SetVersion + * NSSPKIXTBSCertificate_GetSerialNumber + * NSSPKIXTBSCertificate_SetSerialNumber + * NSSPKIXTBSCertificate_GetSignature + * NSSPKIXTBSCertificate_SetSignature + * { inherit algid gettors? } + * NSSPKIXTBSCertificate_GetIssuer + * NSSPKIXTBSCertificate_SetIssuer + * { inherit "helper" issuer gettors? } + * NSSPKIXTBSCertificate_GetValidity + * NSSPKIXTBSCertificate_SetValidity + * { inherit validity accessors } + * NSSPKIXTBSCertificate_GetSubject + * NSSPKIXTBSCertificate_SetSubject + * NSSPKIXTBSCertificate_GetSubjectPublicKeyInfo + * NSSPKIXTBSCertificate_SetSubjectPublicKeyInfo + * NSSPKIXTBSCertificate_HasIssuerUniqueID + * NSSPKIXTBSCertificate_GetIssuerUniqueID + * NSSPKIXTBSCertificate_SetIssuerUniqueID + * NSSPKIXTBSCertificate_RemoveIssuerUniqueID + * NSSPKIXTBSCertificate_HasSubjectUniqueID + * NSSPKIXTBSCertificate_GetSubjectUniqueID + * NSSPKIXTBSCertificate_SetSubjectUniqueID + * NSSPKIXTBSCertificate_RemoveSubjectUniqueID + * NSSPKIXTBSCertificate_HasExtensions + * NSSPKIXTBSCertificate_GetExtensions + * NSSPKIXTBSCertificate_SetExtensions + * NSSPKIXTBSCertificate_RemoveExtensions + * { extension accessors } + * NSSPKIXTBSCertificate_Equal + * NSSPKIXTBSCertificate_Duplicate + */ + +/* + * NSSPKIXTBSCertificate_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertificate * +NSSPKIXTBSCertificate_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTBSCertificate_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_VERSION + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_SERIAL_NUMBER + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ISSUER_NAME + * NSS_ERROR_INVALID_VALIDITY + * NSS_ERROR_INVALID_SUBJECT_NAME + * NSS_ERROR_INVALID_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ISSUER_UNIQUE_IDENTIFIER + * NSS_ERROR_INVALID_SUBJECT_UNIQUE_IDENTIFIER + * NSS_ERROR_INVALID_EXTENSION + * + * Return value: + */ + +NSS_EXTERN NSSPKIXTBSCertificate * +NSSPKIXTBSCertificate_Create +( + NSSArena *arenaOpt, + NSSPKIXVersion version, + NSSPKIXCertificateSerialNumber *serialNumber, + NSSPKIXAlgorithmIdentifier *signature, + NSSPKIXName *issuer, + NSSPKIXValidity *validity, + NSSPKIXName *subject, + NSSPKIXSubjectPublicKeyInfo *spki, + NSSPKIXUniqueIdentifier *issuerUniqueID, + NSSPKIXUniqueIdentifier *subjectUniqueID, + NSSPKIXExtensions *extensions +); + +/* + * NSSPKIXTBSCertificate_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_Destroy +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * NSSPKIXTBSCertificate_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTBSCertificate_Encode +( + NSSPKIXTBSCertificate *tbsCert, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_GetVersion + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid element of the NSSPKIXVersion enumeration upon success + * NSSPKIXVersion_NSSinvalid (-1) upon failure + */ + +NSS_EXTERN NSSPKIXVersion +NSSPKIXTBSCertificate_GetVersion +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * NSSPKIXTBSCertificate_SetVersion + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_VERSION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetVersion +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXVersion version +); + +/* + * NSSPKIXTBSCertificate_GetSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertificateSerialNumber upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateSerialNumber * +NSSPKIXTBSCertificate_GetSerialNumber +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXCertificateSerialNumber *snOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetSerialNumber +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXCertificateSerialNumber *sn +); + +/* + * NSSPKIXTBSCertificate_GetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +NSSPKIXTBSCertificate_GetSignature +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetSignature +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXAlgorithmIdentifier *algID +); + +/* + * { fgmr inherit algid gettors? } + */ + +/* + * NSSPKIXTBSCertificate_GetIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXTBSCertificate_GetIssuer +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetIssuer +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXName *issuer +); + +/* + * { inherit "helper" issuer gettors? } + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * + * Return value: + */ + +/* + * NSSPKIXTBSCertificate_GetValidity + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXValidity upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXValidity * +NSSPKIXTBSCertificate_GetValidity +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetValidity + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetValidity +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXValidity *validity +); + +/* + * { fgmr inherit validity accessors } + */ + +/* + * NSSPKIXTBSCertificate_GetSubject + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXTBSCertificate_GetSubject +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetSubject + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetSubject +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXName *subject +); + +/* + * NSSPKIXTBSCertificate_GetSubjectPublicKeyInfo + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXSubjectPublicKeyInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectPublicKeyInfo * +NSSPKIXTBSCertificate_GetSubjectPublicKeyInfo +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetSubjectPublicKeyInfo + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetSubjectPublicKeyInfo +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXSubjectPublicKeyInfo *spki +); + +/* + * NSSPKIXTBSCertificate_HasIssuerUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXTBSCertificate_HasIssuerUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + PRStatus *statusOpt +); + +/* + * NSSPKIXTBSCertificate_GetIssuerUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_CERT_HAS_NO_ISSUER_UNIQUE_ID + * + * Return value: + * A valid pointer to an NSSPKIXUniqueIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUniqueIdentifier * +NSSPKIXTBSCertificate_GetIssuerUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXUniqueIdentifier *uidOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetIssuerUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetIssuerUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXUniqueIdentifier *uid +); + +/* + * NSSPKIXTBSCertificate_RemoveIssuerUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_CERT_HAS_NO_ISSUER_UNIQUE_ID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_RemoveIssuerUniqueID +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * NSSPKIXTBSCertificate_HasSubjectUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXTBSCertificate_HasSubjectUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + PRStatus *statusOpt +); + +/* + * NSSPKIXTBSCertificate_GetSubjectUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_CERT_HAS_NO_SUBJECT_UNIQUE_ID + * + * Return value: + * A valid pointer to an NSSPKIXUniqueIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUniqueIdentifier * +NSSPKIXTBSCertificate_GetSubjectUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXUniqueIdentifier *uidOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetSubjectUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetSubjectUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXUniqueIdentifier *uid +); + +/* + * NSSPKIXTBSCertificate_RemoveSubjectUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_CERT_HAS_NO_SUBJECT_UNIQUE_ID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_RemoveSubjectUniqueID +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * NSSPKIXTBSCertificate_HasExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXTBSCertificate_HasExtensions +( + NSSPKIXTBSCertificate *tbsCert, + PRStatus *statusOpt +); + +/* + * NSSPKIXTBSCertificate_GetExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_CERT_HAS_NO_EXTENSIONS + * + * Return value: + * A valid pointer to an NSSPKIXExtensions upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensions * +NSSPKIXTBSCertificate_GetExtensions +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertificate_SetExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_SetExtensions +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXExtensions *extensions +); + +/* + * NSSPKIXTBSCertificate_RemoveExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_CERT_HAS_NO_EXTENSIONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertificate_RemoveExtensions +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * { extension accessors } + */ + +/* + * NSSPKIXTBSCertificate_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXTBSCertificate_Equal +( + NSSPKIXTBSCertificate *one, + NSSPKIXTBSCertificate *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXTBSCertificate_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertificate * +NSSPKIXTBSCertificate_Duplicate +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * CertificateSerialNumber + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificateSerialNumber ::= INTEGER + * + * This is just a typedef'd NSSBER; no methods are required. + * {fgmr -- the asn.1 stuff should have routines to convert + * integers to natural types when possible and vv. we can + * refer to them here..} + */ + +/* + * Validity + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Validity ::= SEQUENCE { + * notBefore Time, + * notAfter Time } + * + * The public calls for the type: + * + * NSSPKIXValidity_Decode + * NSSPKIXValidity_Create + * NSSPKIXValidity_Encode + * NSSPKIXValidity_Destroy + * NSSPKIXValidity_GetNotBefore + * NSSPKIXValidity_SetNotBefore + * NSSPKIXValidity_GetNotAfter + * NSSPKIXValidity_SetNotAfter + * NSSPKIXValidity_Equal + * NSSPKIXValidity_Compare + * NSSPKIXValidity_Duplicate + * + */ + +/* + * NSSPKIXValidity_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXValidity upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXValidity * +NSSPKIXValidity_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXValidity_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TIME + * + * Return value: + * A valid pointer to an NSSPKIXValidity upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXValidity * +NSSPKIXValidity_Create +( + NSSArena *arenaOpt, + NSSPKIXTime notBefore, + NSSPKIXTime notAfter +); + +/* + * NSSPKIXValidity_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXValidity_Destroy +( + NSSPKIXValidity *validity +); + +/* + * NSSPKIXValidity_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXValidity_Encode +( + NSSPKIXValidity *validity, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXValidity_GetNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid NSSPKIXTime upon success + * {we need to rethink NSSPKIXTime} + */ + +NSS_EXTERN NSSPKIXTime +NSSPKIXValidity_GetNotBefore +( + NSSPKIXValidity *validity +); + +/* + * NSSPKIXValidity_SetNotBefore + * + * -- fgmr comments -- + * {do we require that it be before the "notAfter" value?} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_VALUE_TOO_LARGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXValidity_SetNotBefore +( + NSSPKIXValidity *validity, + NSSPKIXTime notBefore +); + +/* + * NSSPKIXValidity_GetNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid NSSPKIXTime upon success + * {we need to rethink NSSPKIXTime} + */ + +NSS_EXTERN NSSPKIXTime +NSSPKIXValidity_GetNotAfter +( + NSSPKIXValidity *validity +); + +/* + * NSSPKIXValidity_SetNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_VALUE_TOO_SMALL + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXValidity_SetNotAfter +( + NSSPKIXValidity *validity, + NSSPKIXTime notAfter +); + +/* + * NSSPKIXValidity_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXValidity_Equal +( + NSSPKIXValidity *one, + NSSPKIXValidity *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXValidity_Compare + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * + * Return value: + * 1 if the second is "greater" or later than the first + * 0 if they are equal + * -1 if the first is "greater" or later than the first + * -2 upon failure + */ + +NSS_EXTERN PRIntn +NSSPKIXValidity_Compare +( + NSSPKIXValidity *one, + NSSPKIXValidity *two +); + +/* + * NSSPKIXValidity_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXValidity upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXValidity * +NSSPKIXValidity_Duplicate +( + NSSPKIXValidity *validity, + NSSArena *arenaOpt +); + +/* + * Time + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Time ::= CHOICE { + * utcTime UTCTime, + * generalTime GeneralizedTime } + * + * The public calls for the type: + * + * NSSPKIXTime_Decode + * NSSPKIXTime_CreateFromPRTime + * NSSPKIXTime_CreateFromUTF8 + * NSSPKIXTime_Destroy + * NSSPKIXTime_Encode + * NSSPKIXTime_GetPRTime + * NSSPKIXTime_GetUTF8Encoding + * NSSPKIXTime_Equal + * NSSPKIXTime_Duplicate + * NSSPKIXTime_Compare + * + */ + +/* + * NSSPKIXTime_Decode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTime upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTime * +NSSPKIXTime_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTime_CreateFromPRTime + * + */ + +NSS_EXTERN NSSPKIXTime * +NSSPKIXTime_CreateFromPRTime +( + NSSArena *arenaOpt, + PRTime prTime +); + +/* + * NSSPKIXTime_CreateFromUTF8 + * + */ + +NSS_EXTERN NSSPKIXTime * +NSSPKIXTime_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXTime_Destroy + * + */ + +NSS_EXTERN PR_STATUS +NSSPKIXTime_Destroy +( + NSSPKIXTime *time +); + +/* + * NSSPKIXTime_Encode + * + */ + +NSS_EXTERN NSSBER * +NSSPKIXTime_Encode +( + NSSPKIXTime *time, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTime_GetPRTime + * + * Returns a zero on error + */ + +NSS_EXTERN PRTime +NSSPKIXTime_GetPRTime +( + NSSPKIXTime *time, + PRStatus *statusOpt +); + +/* + * NSSPKIXTime_GetUTF8Encoding + * + */ + +NSS_EXTERN NSSUTF8 * +NSSPKXITime_GetUTF8Encoding +( + NSSPKIXTime *time, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTime_Equal + * + */ + +NSS_EXTERN PRBool +NSSPKXITime_Equal +( + NSSPKXITime *time1, + NSSPKXITime *time2, + PRStatus *statusOpt +); + +/* + * NSSPKIXTime_Duplicate + * + */ + +NSS_EXTERN NSSPKIXTime * +NSSPKXITime_Duplicate +( + NSSPKIXTime *time, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTime_Compare + * + * Usual result: -1, 0, 1 + * Returns 0 on error + */ + +NSS_EXTERN PRInt32 +NSSPKIXTime_Compare +( + NSSPKIXTime *time1, + NSSPKIXTime *tiem2, + PRStatus *statusOpt +); + +/* + * UniqueIdentifier + * + * -- fgmr comments -- + * Should we distinguish bitstrings from "regular" items/BERs? + * It could be another typedef, but with a separate type to help + * remind users about the factor of 8. OR we could make it a + * hard type, and require the use of some (trivial) converters. + * + * From RFC 2459: + * + * UniqueIdentifier ::= BIT STRING + * + */ + +/* + * SubjectPublicKeyInfo + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectPublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * subjectPublicKey BIT STRING } + * + * The public calls for the type: + * + * NSSPKIXSubjectPublicKeyInfo_Decode + * NSSPKIXSubjectPublicKeyInfo_Create + * NSSPKIXSubjectPublicKeyInfo_Encode + * NSSPKIXSubjectPublicKeyInfo_Destroy + * NSSPKIXSubjectPublicKeyInfo_GetAlgorithm + * NSSPKIXSubjectPublicKeyInfo_SetAlgorithm + * NSSPKIXSubjectPublicKeyInfo_GetSubjectPublicKey + * NSSPKIXSubjectPublicKeyInfo_SetSubjectPublicKey + * NSSPKIXSubjectPublicKeyInfo_Equal + * NSSPKIXSubjectPublicKeyInfo_Duplicate + * + */ + +/* + * NSSPKIXSubjectPublicKeyInfo_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXSubjectPublicKeyInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectPublicKeyInfo * +NSSPKIXSubjectPublicKeyInfo_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXSubjectPublicKeyInfo_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXSubjectPublicKeyInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectPublicKeyInfo * +NSSPKIXSubjectPublicKeyInfo_Create +( + NSSArena *arenaOpt, + NSSPKIXAlgorithmIdentifier *algid, + NSSItem *subjectPublicKey +); + +/* + * NSSPKIXSubjectPublicKeyInfo_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectPublicKeyInfo_Destroy +( + NSSPKIXSubjectPublicKeyInfo *spki +); + +/* + * NSSPKIXSubjectPublicKeyInfo_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXSubjectPublicKeyInfo_Encode +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXSubjectPublicKeyInfo_GetAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +NSSPKIXSubjectPublicKeyInfo_GetAlgorithm +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSArena *arenaOpt +); + +/* + * NSSPKIXSubjectPublicKeyInfo_SetAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectPublicKeyInfo_SetAlgorithm +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSPKIXAlgorithmIdentifier *algid +); + +/* + * NSSPKIXSubjectPublicKeyInfo_GetSubjectPublicKey + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +NSSPKIXSubjectPublicKeyInfo_GetSubjectPublicKey +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSItem *spkOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXSubjectPublicKeyInfo_SetSubjectPublicKey + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectPublicKeyInfo_SetSubjectPublicKey +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSItem *spk +); + +/* + * NSSPKIXSubjectPublicKeyInfo_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXSubjectPublicKeyInfo_Equal +( + NSSPKIXSubjectPublicKeyInfo *one, + NSSPKIXSubjectPublicKeyInfo *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXSubjectPublicKeyInfo_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXSubjectPublicKeyInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectPublicKeyInfo * +NSSPKIXSubjectPublicKeyInfo_Duplicate +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSArena *arenaOpt +); + +/* + * Extensions + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension + * + */ + +/* { FGMR } */ + +/* + * Extension + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Extension ::= SEQUENCE { + * extnID OBJECT IDENTIFIER, + * critical BOOLEAN DEFAULT FALSE, + * extnValue OCTET STRING } + * + */ + +/* { FGMR } */ + +/* + * CertificateList + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificateList ::= SEQUENCE { + * tbsCertList TBSCertList, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING } + * + * The public calls for the type: + * + * NSSPKIXCertificateList_Decode + * NSSPKIXCertificateList_Create + * NSSPKIXCertificateList_Encode + * NSSPKIXCertificateList_Destroy + * NSSPKIXCertificateList_GetTBSCertList + * NSSPKIXCertificateList_SetTBSCertList + * NSSPKIXCertificateList_GetSignatureAlgorithm + * NSSPKIXCertificateList_SetSignatureAlgorithm + * NSSPKIXCertificateList_GetSignature + * NSSPKIXCertificateList_SetSignature + * NSSPKIXCertificateList_Equal + * NSSPKIXCertificateList_Duplicate + * + */ + +/* + * NSSPKIXCertificateList_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCertificateList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateList * +NSSPKIXCertificateList_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXCertificateList_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXCertificateList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateList * +NSSPKIXCertificateList_Create +( + NSSArena *arenaOpt, + NSSPKIXTBSCertList *tbsCertList, + NSSPKIXAlgorithmIdentifier *sigAlg, + NSSItem *signature +); + +/* + * NSSPKIXCertificateList_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificateList_Destroy +( + NSSPKIXCertificateList *certList +); + +/* + * NSSPKIXCertificateList_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXCertificateList_Encode +( + NSSPKIXCertificateList *certList, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificateList_GetTBSCertList + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertList * +NSSPKIXCertificateList_GetTBSCertList +( + NSSPKIXCertificateList *certList, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificateList_SetTBSCertList + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificateList_SetTBSCertList +( + NSSPKIXCertificateList *certList, + NSSPKIXTBSCertList *tbsCertList +); + +/* + * NSSPKIXCertificateList_GetSignatureAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +NSSPKIXCertificateList_GetSignatureAlgorithm +( + NSSPKIXCertificateList *certList, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificateList_SetSignatureAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificateList_SetSignatureAlgorithm +( + NSSPKIXCertificateList *certList, + NSSPKIXAlgorithmIdentifier *sigAlg +); + +/* + * NSSPKIXCertificateList_GetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +NSSPKIXCertificateList_GetSignature +( + NSSPKIXCertificateList *certList, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificateList_SetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificateList_SetSignature +( + NSSPKIXCertificateList *certList, + NSSItem *sig +); + +/* + * NSSPKIXCertificateList_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXCertificateList_Equal +( + NSSPKIXCertificateList *one, + NSSPKIXCertificateList *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXCertificateList_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertificateList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateList * +NSSPKIXCertificateList_Duplicate +( + NSSPKIXCertificateList *certList, + NSSArena *arenaOpt +); + +/* + * TBSCertList + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TBSCertList ::= SEQUENCE { + * version Version OPTIONAL, + * -- if present, shall be v2 + * signature AlgorithmIdentifier, + * issuer Name, + * thisUpdate Time, + * nextUpdate Time OPTIONAL, + * revokedCertificates SEQUENCE OF SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * crlExtensions [0] Extensions OPTIONAL + * -- if present, shall be v2 -- } + * + * The public calls for the type: + * + * NSSPKIXTBSCertList_Decode + * NSSPKIXTBSCertList_Create + * NSSPKIXTBSCertList_Destroy + * NSSPKIXTBSCertList_Encode + * NSSPKIXTBSCertList_GetVersion + * NSSPKIXTBSCertList_SetVersion + * NSSPKIXTBSCertList_GetSignature + * NSSPKIXTBSCertList_SetSignature + * NSSPKIXTBSCertList_GetIssuer + * NSSPKIXTBSCertList_SetIssuer + * NSSPKIXTBSCertList_GetThisUpdate + * NSSPKIXTBSCertList_SetThisUpdate + * NSSPKIXTBSCertList_HasNextUpdate + * NSSPKIXTBSCertList_GetNextUpdate + * NSSPKIXTBSCertList_SetNextUpdate + * NSSPKIXTBSCertList_RemoveNextUpdate + * NSSPKIXTBSCertList_GetRevokedCertificates + * NSSPKIXTBSCertList_SetRevokedCertificates + * NSSPKIXTBSCertList_HasCrlExtensions + * NSSPKIXTBSCertList_GetCrlExtensions + * NSSPKIXTBSCertList_SetCrlExtensions + * NSSPKIXTBSCertList_RemoveCrlExtensions + * NSSPKIXTBSCertList_Equal + * NSSPKIXTBSCertList_Duplicate + * + */ + +/* + * NSSPKIXTBSCertList_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertList * +NSSPKIXTBSCertList_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTBSCertList_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_VERSION + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_PKIX_TIME + * (something for the times being out of order?) + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertList * +NSSPKIXTBSCertList_Create +( + NSSArena *arenaOpt, + NSSPKIXVersion version, + NSSPKIXAlgorithmIdentifier *signature, + NSSPKIXName *issuer, + NSSPKIXTime thisUpdate, + NSSPKIXTime nextUpdateOpt, + NSSPKIXrevokedCertificates *revokedCerts, + NSSPKIXExtensions *crlExtensionsOpt +); + +/* + * NSSPKIXTBSCertList_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_Destroy +( + NSSPKIXTBSCertList *certList +); + +/* + * NSSPKIXTBSCertList_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTBSCertList_Encode +( + NSSPKIXTBSCertList *certList, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertList_GetVersion + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid element of the NSSPKIXVersion enumeration upon success + * NSSPKIXVersion_NSSinvalid (-1) upon failure + */ + +NSS_EXTERN NSSPKIXVersion +NSSPKIXTBSCertList_GetVersion +( + NSSPKIXTBSCertList *certList +); + +/* + * NSSPKIXTBSCertList_SetVersion + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_VERSION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_SetVersion +( + NSSPKIXTBSCertList *certList, + NSSPKIXVersion version +); + +/* + * NSSPKIXTBSCertList_GetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +NSSPKIXTBSCertList_GetSignature +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertList_SetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_SetSignature +( + NSSPKIXTBSCertList *certList, + NSSPKIXAlgorithmIdentifier *algid, +); + +/* + * NSSPKIXTBSCertList_GetIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXTBSCertList_GetIssuer +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertList_SetIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_SetIssuer +( + NSSPKIXTBSCertList *certList, + NSSPKIXName *issuer +); + +/* + * NSSPKIXTBSCertList_GetThisUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid NSSPKIXTime upon success + * {we need to rethink NSSPKIXTime} + */ + +NSS_EXTERN NSSPKIXTime +NSSPKIXTBSCertList_GetThisUpdate +( + NSSPKIXTBSCertList *certList +); + +/* + * NSSPKIXTBSCertList_SetThisUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_TOO_LARGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_SetThisUpdate +( + NSSPKIXTBSCertList *certList, + NSSPKIXTime thisUpdate +); + +/* + * NSSPKIXTBSCertList_HasNextUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXTBSCertList_HasNextUpdate +( + NSSPKIXTBSCertList *certList, + PRStatus *statusOpt +); + +/* + * NSSPKIXTBSCertList_GetNextUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid NSSPKIXTime upon success + * {we need to rethink NSSPKIXTime} + */ + +NSS_EXTERN NSSPKIXTime +NSSPKIXTBSCertList_GetNextUpdate +( + NSSPKIXTBSCertList *certList +); + +/* + * NSSPKIXTBSCertList_SetNextUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_TOO_SMALL + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_SetNextUpdate +( + NSSPKIXTBSCertList *certList, + NSSPKIXTime nextUpdate +); + +/* + * NSSPKIXTBSCertList_RemoveNextUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_HAS_NO_NEXT_UPDATE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_RemoveNextUpdate +( + NSSPKIXTBSCertList *certList +); + +/* + * NSSPKIXTBSCertList_GetRevokedCertificates + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificates upon succes + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificates * +NSSPKIXTBSCertList_GetRevokedCertificates +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertList_SetRevokedCertificates + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATES + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_SetRevokedCertificates +( + NSSPKIXTBSCertList *certList, + NSSPKIXrevokedCertificates *revoked +); + +/* + * NSSPKIXTBSCertList_HasCrlExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXTBSCertList_HasCrlExtensions +( + NSSPKIXTBSCertList *certList, + PRStatus *statusOpt +); + +/* + * NSSPKIXTBSCertList_GetCrlExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXExtensions upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensions * +NSSPKIXTBSCertList_GetCrlExtensions +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTBSCertList_SetCrlExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_SetCrlExtensions +( + NSSPKIXTBSCertList *certList, + NSSPKIXExtensions *extensions +); + +/* + * NSSPKIXTBSCertList_RemoveCrlExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_HAS_NO_EXTENSIONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTBSCertList_RemoveCrlExtensions +( + NSSPKIXTBSCertList *certList +); + +/* + * NSSPKIXTBSCertList_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXTBSCertList_Equal +( + NSSPKIXTBSCertList *one, + NSSPKIXTBSCertList *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXTBSCertList_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertList * +NSSPKIXTBSCertList_Duplicate +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * revokedCertificates + * + * This is a "helper type" to simplify handling of TBSCertList objects. + * + * revokedCertificates SEQUENCE OF SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * + * The public calls for the type: + * + * NSSPKIXrevokedCertificates_Decode + * NSSPKIXrevokedCertificates_Create + * NSSPKIXrevokedCertificates_Encode + * NSSPKIXrevokedCertificates_Destroy + * NSSPKIXrevokedCertificates_GetRevokedCertificateCount + * NSSPKIXrevokedCertificates_GetRevokedCertificates + * NSSPKIXrevokedCertificates_SetRevokedCertificates + * NSSPKIXrevokedCertificates_GetRevokedCertificate + * NSSPKIXrevokedCertificates_SetRevokedCertificate + * NSSPKIXrevokedCertificates_InsertRevokedCertificate + * NSSPKIXrevokedCertificates_AppendRevokedCertificate + * NSSPKIXrevokedCertificates_RemoveRevokedCertificate + * NSSPKIXrevokedCertificates_Equal + * NSSPKIXrevokedCertificates_Duplicate + * + */ + +/* + * NSSPKIXrevokedCertificates_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificates upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificates * +NSSPKIXrevokedCertificates_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXrevokedCertificates_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificates upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificates * +NSSPKIXrevokedCertificates_Create +( + NSSArena *arenaOpt, + NSSPKIXrevokedCertificate *rc1, + ... +); + +/* + * NSSPKIXrevokedCertificates_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificates_Destroy +( + NSSPKIXrevokedCertificates *rcs +); + +/* + * NSSPKIXrevokedCertificates_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXrevokedCertificates_Encode +( + NSSPKIXrevokedCertificates *rcs, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXrevokedCertificates_GetRevokedCertificateCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXrevokedCertificates_GetRevokedCertificateCount +( + NSSPKIXrevokedCertificates *rcs +); + +/* + * NSSPKIXrevokedCertificates_GetRevokedCertificates + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXrevokedCertificate pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate ** +NSSPKIXrevokedCertificates_GetRevokedCertificates +( + NSSPKIXrevokedCertificates *rcs, + NSSPKIXrevokedCertificate *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXrevokedCertificates_SetRevokedCertificates + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificates_SetRevokedCertificates +( + NSSPKIXrevokedCertificates *rcs, + NSSPKIXrevokedCertificate *rc[], + PRInt32 countOpt +); + +/* + * NSSPKIXrevokedCertificates_GetRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate * +NSSPKIXrevokedCertificates_GetRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXrevokedCertificates_SetRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificates_SetRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i, + NSSPKIXrevokedCertificate *rc +); + +/* + * NSSPKIXrevokedCertificates_InsertRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificates_InsertRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i, + NSSPKIXrevokedCertificate *rc +); + +/* + * NSSPKIXrevokedCertificates_AppendRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificates_AppendRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i, + NSSPKIXrevokedCertificate *rc +); + +/* + * NSSPKIXrevokedCertificates_RemoveRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificates_RemoveRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i +); + +/* + * NSSPKIXrevokedCertificates_FindRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * + * Return value: + * The index of the specified revoked certificate upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +NSSPKIXrevokedCertificates_FindRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + NSSPKIXrevokedCertificate *rc +); + +/* + * NSSPKIXrevokedCertificates_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXrevokedCertificates_Equal +( + NSSPKIXrevokedCertificates *one, + NSSPKIXrevokedCertificates *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXrevokedCertificates_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificates upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificates * +NSSPKIXrevokedCertificates_Duplicate +( + NSSPKIXrevokedCertificates *rcs, + NSSArena *arenaOpt +); + +/* + * revokedCertificate + * + * This is a "helper type" to simplify handling of TBSCertList objects. + * + * SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * + * The public calls for this type: + * + * NSSPKIXrevokedCertificate_Decode + * NSSPKIXrevokedCertificate_Create + * NSSPKIXrevokedCertificate_Encode + * NSSPKIXrevokedCertificate_Destroy + * NSSPKIXrevokedCertificate_GetUserCertificate + * NSSPKIXrevokedCertificate_SetUserCertificate + * NSSPKIXrevokedCertificate_GetRevocationDate + * NSSPKIXrevokedCertificate_SetRevocationDate + * NSSPKIXrevokedCertificate_HasCrlEntryExtensions + * NSSPKIXrevokedCertificate_GetCrlEntryExtensions + * NSSPKIXrevokedCertificate_SetCrlEntryExtensions + * NSSPKIXrevokedCertificate_RemoveCrlEntryExtensions + * NSSPKIXrevokedCertificate_Equal + * NSSPKIXrevokedCertificate_Duplicate + * + */ + + +/* + * NSSPKIXrevokedCertificate_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate * +NSSPKIXrevokedCertificate_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXrevokedCertificate_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_SERIAL_NUMBER + * NSS_ERROR_INVALID_PKIX_TIME + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate * +NSSPKIXrevokedCertificate_Create +( + NSSArena *arenaOpt, + NSSPKIXCertificateSerialNumber *userCertificate, + NSSPKIXTime *revocationDate, + NSSPKIXExtensions *crlEntryExtensionsOpt +); + +/* + * NSSPKIXrevokedCertificate_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificate_Destroy +( + NSSPKIXrevokedCertificate *rc +); + +/* + * NSSPKIXrevokedCertificate_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXrevokedCertificate_Encode +( + NSSPKIXrevokedCertificate *rc, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXrevokedCertificate_GetUserCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertificateSerialNumber upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateSerialNumber * +NSSPKIXrevokedCertificate_GetUserCertificate +( + NSSPKIXrevokedCertificate *rc, + NSSArena *arenaOpt +); + +/* + * NSSPKIXrevokedCertificate_SetUserCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_SERIAL_NUMBER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificate_SetUserCertificate +( + NSSPKIXrevokedCertificate *rc, + NSSPKIXCertificateSerialNumber *csn +); + +/* + * NSSPKIXrevokedCertificate_GetRevocationDate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTime upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTime * +NSSPKIXrevokedCertificate_GetRevocationDate +( + NSSPKIXrevokedCertificate *rc, + NSSArena *arenaOpt +); + +/* + * NSSPKIXrevokedCertificate_SetRevocationDate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_TIME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificate_SetRevocationDate +( + NSSPKIXrevokedCertificate *rc, + NSSPKIXTime *revocationDate +); + +/* + * NSSPKIXrevokedCertificate_HasCrlEntryExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXrevokedCertificate_HasCrlEntryExtensions +( + NSSPKIXrevokedCertificate *rc, + PRStatus *statusOpt +); + +/* + * NSSPKIXrevokedCertificate_GetCrlEntryExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_NO_EXTENSIONS + * + * Return value: + * A valid pointer to an NSSPKIXExtensions upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensions * +NSSPKIXrevokedCertificate_GetCrlEntryExtensions +( + NSSPKIXrevokedCertificate *rc, + NSSArena *arenaOpt +); + +/* + * NSSPKIXrevokedCertificate_SetCrlEntryExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificate_SetCrlEntryExtensions +( + NSSPKIXrevokedCertificate *rc, + NSSPKIXExtensions *crlEntryExtensions +); + +/* + * NSSPKIXrevokedCertificate_RemoveCrlEntryExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_NO_EXTENSIONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXrevokedCertificate_RemoveCrlEntryExtensions +( + NSSPKIXrevokedCertificate *rc +); + +/* + * NSSPKIXrevokedCertificate_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXrevokedCertificate_Equal +( + NSSPKIXrevokedCertificate *one, + NSSPKIXrevokedCertificate *two, + PRStatus *statusOpt +); + +/* + * NSSPKIXrevokedCertificate_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate * +NSSPKIXrevokedCertificate_Duplicate +( + NSSPKIXrevokedCertificate *rc, + NSSArena *arenaOpt +); + +/* + * AlgorithmIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * (1988 syntax) + * + * AlgorithmIdentifier ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, + * parameters ANY DEFINED BY algorithm OPTIONAL } + * -- contains a value of the type + * -- registered for use with the + * -- algorithm object identifier value + * + * The public calls for this type: + * + * NSSPKIXAlgorithmIdentifier_Decode + * NSSPKIXAlgorithmIdentifier_Create + * NSSPKIXAlgorithmIdentifier_Encode + * NSSPKIXAlgorithmIdentifier_Destroy + * NSSPKIXAlgorithmIdentifier_GetAlgorithm + * NSSPKIXAlgorithmIdentifier_SetAlgorithm + * NSSPKIXAlgorithmIdentifier_GetParameters + * NSSPKIXAlgorithmIdentifier_SetParameters + * NSSPKIXAlgorithmIdentifier_Compare + * NSSPKIXAlgorithmIdentifier_Duplicate + * { algorithm-specific parameter types and accessors ? } + * + */ + +/* + * NSSPKIXAlgorithmIdentifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +NSSPKIXAlgorithmIdentifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXAlgorithmIdentifier_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_POINTER + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +NSSPKIXAlgorithmIdentifier_Create +( + NSSArena *arenaOpt, + NSSOID *algorithm, + NSSItem *parameters +); + +/* + * NSSPKIXAlgorithmIdentifier_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAlgorithmIdentifier_Destroy +( + NSSPKIXAlgorithmIdentifier *algid +); + +/* + * NSSPKIXAlgorithmIdentifier_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXAlgorithmIdentifier_Encode +( + NSSPKIXAlgorithmIdentifier *algid, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAlgorithmIdentifier_GetAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSOID pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSOID * +NSSPKIXAlgorithmIdentifier_GetAlgorithm +( + NSSPKIXAlgorithmIdentifier *algid +); + +/* + * NSSPKIXAlgorithmIdentifier_SetAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_OID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAlgorithmIdentifier_SetAlgorithm +( + NSSPKIXAlgorithmIdentifier *algid, + NSSOID *algorithm +); + +/* + * NSSPKIXAlgorithmIdentifier_GetParameters + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +NSSPKIXAlgorithmIdentifier_GetParameters +( + NSSPKIXAlgorithmIdentifier *algid, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAlgorithmIdentifier_SetParameters + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_POINTER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAlgorithmIdentifier_SetParameters +( + NSSPKIXAlgorithmIdentifier *algid, + NSSItem *parameters +); + +/* + * NSSPKIXAlgorithmIdentifier_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXAlgorithmIdentifier_Equal +( + NSSPKIXAlgorithmIdentifier *algid1, + NSSPKIXAlgorithmIdentifier *algid2, + PRStatus *statusOpt +); + +/* + * NSSPKIXAlgorithmIdentifier_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +NSSPKIXAlgorithmIdentifier_Duplicate +( + NSSPKIXAlgorithmIdentifier *algid, + NSSArena *arenaOpt +); + +/* + * { algorithm-specific parameter types and accessors ? } + */ + +/* + * ORAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ORAddress ::= SEQUENCE { + * built-in-standard-attributes BuiltInStandardAttributes, + * built-in-domain-defined-attributes + * BuiltInDomainDefinedAttributes OPTIONAL, + * -- see also teletex-domain-defined-attributes + * extension-attributes ExtensionAttributes OPTIONAL } + * -- The OR-address is semantically absent from the OR-name if the + * -- built-in-standard-attribute sequence is empty and the + * -- built-in-domain-defined-attributes and extension-attributes are + * -- both omitted. + * + * The public calls for this type: + * + * NSSPKIXORAddress_Decode + * NSSPKIXORAddress_Create + * NSSPKIXORAddress_Destroy + * NSSPKIXORAddress_Encode + * NSSPKIXORAddress_GetBuiltInStandardAttributes + * NSSPKIXORAddress_SetBuiltInStandardAttributes + * NSSPKIXORAddress_HasBuiltInDomainDefinedAttributes + * NSSPKIXORAddress_GetBuiltInDomainDefinedAttributes + * NSSPKIXORAddress_SetBuiltInDomainDefinedAttributes + * NSSPKIXORAddress_RemoveBuiltInDomainDefinedAttributes + * NSSPKIXORAddress_HasExtensionsAttributes + * NSSPKIXORAddress_GetExtensionsAttributes + * NSSPKIXORAddress_SetExtensionsAttributes + * NSSPKIXORAddress_RemoveExtensionsAttributes + * NSSPKIXORAddress_Equal + * NSSPKIXORAddress_Duplicate + * + */ + +/* + * NSSPKIXORAddress_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXORAddres upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXORAddress * +NSSPKIXORAddress_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXORAddress_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSIONS_ATTRIBUTES + * + * Return value: + * A valid pointer to an NSSPKIXORAddres upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXORAddress * +NSSPKIXORAddress_Create +( + NSSArena *arenaOpt, + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXBuiltInDomainDefinedAttributes *biddaOpt, + NSSPKIXExtensionAttributes *eaOpt +); + +/* + * NSSPKIXORAddress_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXORAddress_Destroy +( + NSSPKIXORAddress *ora +); + +/* + * NSSPKIXORAddress_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXORAddress_Encode +( + NSSPKIXORAddress *ora, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXORAddress_GetBuiltInStandardAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInStandardAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInStandardAttributes * +NSSPKIXORAddress_GetBuiltInStandardAttributes +( + NSSPKIXORAddress *ora, + NSSArena *arenaOpt +); + +/* + * NSSPKIXORAddress_SetBuiltInStandardAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXORAddress_SetBuiltInStandardAttributes +( + NSSPKIXORAddress *ora, + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXORAddress_HasBuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXORAddress_HasBuiltInDomainDefinedAttributes +( + NSSPKIXORAddress *ora, + PRStatus *statusOpt +); + +/* + * NSSPKIXORAddress_GetBuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_NO_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttributes * +NSSPKIXORAddress_GetBuiltInDomainDefinedAttributes +( + NSSPKIXORAddress *ora, + NSSArena *arenaOpt +); + +/* + * NSSPKIXORAddress_SetBuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXORAddress_SetBuiltInDomainDefinedAttributes +( + NSSPKIXORAddress *ora, + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXORAddress_RemoveBuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXORAddress_RemoveBuiltInDomainDefinedAttributes +( + NSSPKIXORAddress *ora +); + +/* + * NSSPKIXORAddress_HasExtensionsAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXORAddress_HasExtensionsAttributes +( + NSSPKIXORAddress *ora, + PRStatus *statusOpt +); + +/* + * NSSPKIXORAddress_GetExtensionsAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_NO_EXTENSION_ATTRIBUTES + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributes * +NSSPKIXORAddress_GetExtensionsAttributes +( + NSSPKIXORAddress *ora, + NSSArena *arenaOpt +); + +/* + * NSSPKIXORAddress_SetExtensionsAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXORAddress_SetExtensionsAttributes +( + NSSPKIXORAddress *ora, + NSSPKIXExtensionAttributes *eaOpt +); + +/* + * NSSPKIXORAddress_RemoveExtensionsAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXORAddress_RemoveExtensionsAttributes +( + NSSPKIXORAddress *ora +); + +/* + * NSSPKIXORAddress_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXORAddress_Equal +( + NSSPKIXORAddress *ora1, + NSSPKIXORAddress *ora2, + PRStatus *statusOpt +); + +/* + * NSSPKIXORAddress_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXORAddres upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXORAddress * +NSSPKIXORAddress_Duplicate +( + NSSPKIXORAddress *ora, + NSSArena *arenaOpt +); + +/* + * BuiltInStandardAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInStandardAttributes ::= SEQUENCE { + * country-name CountryName OPTIONAL, + * administration-domain-name AdministrationDomainName OPTIONAL, + * network-address [0] NetworkAddress OPTIONAL, + * -- see also extended-network-address + * terminal-identifier [1] TerminalIdentifier OPTIONAL, + * private-domain-name [2] PrivateDomainName OPTIONAL, + * organization-name [3] OrganizationName OPTIONAL, + * -- see also teletex-organization-name + * numeric-user-identifier [4] NumericUserIdentifier OPTIONAL, + * personal-name [5] PersonalName OPTIONAL, + * -- see also teletex-personal-name + * organizational-unit-names [6] OrganizationalUnitNames OPTIONAL + * -- see also teletex-organizational-unit-names -- } + * + * The public calls for this type: + * + * NSSPKIXBuiltInStandardAttributes_Decode + * NSSPKIXBuiltInStandardAttributes_Create + * NSSPKIXBuiltInStandardAttributes_Destroy + * NSSPKIXBuiltInStandardAttributes_Encode + * NSSPKIXBuiltInStandardAttributes_HasCountryName + * NSSPKIXBuiltInStandardAttributes_GetCountryName + * NSSPKIXBuiltInStandardAttributes_SetCountryName + * NSSPKIXBuiltInStandardAttributes_RemoveCountryName + * NSSPKIXBuiltInStandardAttributes_HasAdministrationDomainName + * NSSPKIXBuiltInStandardAttributes_GetAdministrationDomainName + * NSSPKIXBuiltInStandardAttributes_SetAdministrationDomainName + * NSSPKIXBuiltInStandardAttributes_RemoveAdministrationDomainName + * NSSPKIXBuiltInStandardAttributes_HasNetworkAddress + * NSSPKIXBuiltInStandardAttributes_GetNetworkAddress + * NSSPKIXBuiltInStandardAttributes_SetNetworkAddress + * NSSPKIXBuiltInStandardAttributes_RemoveNetworkAddress + * NSSPKIXBuiltInStandardAttributes_HasTerminalIdentifier + * NSSPKIXBuiltInStandardAttributes_GetTerminalIdentifier + * NSSPKIXBuiltInStandardAttributes_SetTerminalIdentifier + * NSSPKIXBuiltInStandardAttributes_RemoveTerminalIdentifier + * NSSPKIXBuiltInStandardAttributes_HasPrivateDomainName + * NSSPKIXBuiltInStandardAttributes_GetPrivateDomainName + * NSSPKIXBuiltInStandardAttributes_SetPrivateDomainName + * NSSPKIXBuiltInStandardAttributes_RemovePrivateDomainName + * NSSPKIXBuiltInStandardAttributes_HasOrganizationName + * NSSPKIXBuiltInStandardAttributes_GetOrganizationName + * NSSPKIXBuiltInStandardAttributes_SetOrganizationName + * NSSPKIXBuiltInStandardAttributes_RemoveOrganizationName + * NSSPKIXBuiltInStandardAttributes_HasNumericUserIdentifier + * NSSPKIXBuiltInStandardAttributes_GetNumericUserIdentifier + * NSSPKIXBuiltInStandardAttributes_SetNumericUserIdentifier + * NSSPKIXBuiltInStandardAttributes_RemoveNumericUserIdentifier + * NSSPKIXBuiltInStandardAttributes_HasPersonalName + * NSSPKIXBuiltInStandardAttributes_GetPersonalName + * NSSPKIXBuiltInStandardAttributes_SetPersonalName + * NSSPKIXBuiltInStandardAttributes_RemovePersonalName + * NSSPKIXBuiltInStandardAttributes_HasOrganizationLUnitNames + * NSSPKIXBuiltInStandardAttributes_GetOrganizationLUnitNames + * NSSPKIXBuiltInStandardAttributes_SetOrganizationLUnitNames + * NSSPKIXBuiltInStandardAttributes_RemoveOrganizationLUnitNames + * NSSPKIXBuiltInStandardAttributes_Equal + * NSSPKIXBuiltInStandardAttributes_Duplicate + * + */ + +/* + * NSSPKIXBuiltInStandardAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInStandardAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInStandardAttributes * +NSSPKIXBuiltInStandardAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXBuiltInStandardAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_COUNTRY_NAME + * NSS_ERROR_INVALID_PKIX_ADMINISTRATION_DOMAIN_NAME + * NSS_ERROR_INVALID_PKIX_NETWORK_ADDRESS + * NSS_ERROR_INVALID_PKIX_TERMINAL_IDENTIFIER + * NSS_ERROR_INVALID_PKIX_PRIVATE_DOMAIN_NAME + * NSS_ERROR_INVALID_PKIX_ORGANIZATION_NAME + * NSS_ERROR_INVALID_PKIX_NUMERIC_USER_IDENTIFIER + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInStandardAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInStandardAttributes * +NSSPKIXBuiltInStandardAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXCountryName *countryNameOpt, + NSSPKIXAdministrationDomainName *administrationDomainNameOpt, + NSSPKIXNetworkAddress *networkAddressOpt, + NSSPKIXTerminalIdentifier *terminalIdentifierOpt, + NSSPKIXPrivateDomainName *privateDomainNameOpt, + NSSPKIXOrganizationName *organizationNameOpt, + NSSPKIXNumericUserIdentifier *numericUserIdentifierOpt, + NSSPKIXPersonalName *personalNameOpt, + NSSPKIXOrganizationalUnitNames *organizationalUnitNamesOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_Destroy +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXBuiltInStandardAttributes_Encode +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasCountryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasCountryName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetCountryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCountryName * +NSSPKIXBuiltInStandardAttributes_GetCountryName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetCountryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_COUNTRY_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetCountryName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXCountryName *countryName +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemoveCountryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_COUNTRY_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemoveCountryName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasAdministrationDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasAdministrationDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetAdministrationDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAdministrationDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAdministrationDomainName * +NSSPKIXBuiltInStandardAttributes_GetAdministrationDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetAdministrationDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ADMINISTRATION_DOMAIN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetAdministrationDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXAdministrationDomainName *administrationDomainName +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemoveAdministrationDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_ADMINISTRATION_DOMAIN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemoveAdministrationDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasNetworkAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasNetworkAddress +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetNetworkAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNetworkAddress * +NSSPKIXBuiltInStandardAttributes_GetNetworkAddress +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetNetworkAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_NETWORK_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetNetworkAddress +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXNetworkAddress *networkAddress +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemoveNetworkAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_NETWORK_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemoveNetworkAddress +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasTerminalIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasTerminalIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetTerminalIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTerminalIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTerminalIdentifier * +NSSPKIXBuiltInStandardAttributes_GetTerminalIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetTerminalIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_TERMINAL_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetTerminalIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXTerminalIdentifier *terminalIdentifier +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemoveTerminalIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_TERMINAL_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemoveTerminalIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasPrivateDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasPrivateDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetPrivateDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateDomainName * +NSSPKIXBuiltInStandardAttributes_GetPrivateDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetPrivateDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_PRIVATE_DOMAIN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetPrivateDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXPrivateDomainName *privateDomainName +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemovePrivateDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_PRIVATE_DOMAIN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemovePrivateDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasOrganizationName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasOrganizationName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetOrganizationName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationName * +NSSPKIXBuiltInStandardAttributes_GetOrganizationName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetOrganizationName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ORGANIZATION_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetOrganizationName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXOrganizationName *organizationName +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemoveOrganizationName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_ORGANIZATION_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemoveOrganizationName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasNumericUserIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasNumericUserIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetNumericUserIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNumericUserIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNumericUserIdentifier * +NSSPKIXBuiltInStandardAttributes_GetNumericUserIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetNumericUserIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_NUMERIC_USER_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetNumericUserIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXNumericUserIdentifier *numericUserIdentifier +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemoveNumericUserIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_NUMERIC_USER_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemoveNumericUserIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasPersonalName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasPersonalName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetPersonalName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPersonalName * +NSSPKIXBuiltInStandardAttributes_GetPersonalName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetPersonalName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetPersonalName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXPersonalName *personalName +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemovePersonalName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemovePersonalName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_HasOrganizationLUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_HasOrganizationLUnitNames +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_GetOrganizationLUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitNames * +NSSPKIXBuiltInStandardAttributes_GetOrganizationLUnitNames +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_SetOrganizationLUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_SetOrganizationLUnitNames +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXOrganizationalUnitNames *organizationalUnitNames +); + +/* + * NSSPKIXBuiltInStandardAttributes_RemoveOrganizationLUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInStandardAttributes_RemoveOrganizationLUnitNames +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * NSSPKIXBuiltInStandardAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInStandardAttributes_Equal +( + NSSPKIXBuiltInStandardAttributes *bisa1, + NSSPKIXBuiltInStandardAttributes *bisa2, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInStandardAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInStandardAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInStandardAttributes * +NSSPKIXBuiltInStandardAttributes_Duplicate +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * CountryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CountryName ::= [APPLICATION 1] CHOICE { + * x121-dcc-code NumericString + * (SIZE (ub-country-name-numeric-length)), + * iso-3166-alpha2-code PrintableString + * (SIZE (ub-country-name-alpha-length)) } + * + * The public calls for this type: + * + * NSSPKIXCountryName_Decode + * NSSPKIXCountryName_CreateFromUTF8 + * NSSPKIXCountryName_Encode + * + */ + +/* + * NSSPKIXCountryName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCountryName * +NSSPKIXCountryName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXCountryName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCountryName * +NSSPKIXCountryName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXCountryName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_COUNTRY_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXCountryName_Encode +( + NSSPKIXCountryName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * AdministrationDomainName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AdministrationDomainName ::= [APPLICATION 2] CHOICE { + * numeric NumericString (SIZE (0..ub-domain-name-length)), + * printable PrintableString (SIZE (0..ub-domain-name-length)) } + * + * The public calls for this type: + * + * NSSPKIXAdministrationDomainName_Decode + * NSSPKIXAdministrationDomainName_CreateFromUTF8 + * NSSPKIXAdministrationDomainName_Encode + * + */ + +/* + * NSSPKIXAdministrationDomainName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAdministrationDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAdministrationDomainName * +NSSPKIXAdministrationDomainName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXAdministrationDomainName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAdministrationDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAdministrationDomainName * +NSSPKIXAdministrationDomainName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXAdministrationDomainName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ADMINISTRATION_DOMAIN_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXAdministrationDomainName_Encode +( + NSSPKIXAdministrationDomainName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X121Address + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X121Address ::= NumericString (SIZE (1..ub-x121-address-length)) + * + * The public calls for this type: + * + * NSSPKIXX121Address_Decode + * NSSPKIXX121Address_CreateFromUTF8 + * NSSPKIXX121Address_Encode + * + */ + +/* + * NSSPKIXX121Address_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX121Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX121Address * +NSSPKIXX121Address_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXX121Address_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX121Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX121Address * +NSSPKIXX121Address_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXX121Address_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_X121_ADDRESS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXX121Address_Encode +( + NSSPKIXX121Address *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NetworkAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NetworkAddress ::= X121Address -- see also extended-network-address + * + * The public calls for this type: + * + * NSSPKIXNetworkAddress_Decode + * NSSPKIXNetworkAddress_CreateFromUTF8 + * NSSPKIXNetworkAddress_Encode + * + */ + +/* + * NSSPKIXNetworkAddress_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNetworkAddress * +NSSPKIXNetworkAddress_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXNetworkAddress_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNetworkAddress * +NSSPKIXNetworkAddress_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXNetworkAddress_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXNetworkAddress_Encode +( + NSSPKIXNetworkAddress *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * TerminalIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length)) + * + * The public calls for this type: + * + * NSSPKIXTerminalIdentifier_Decode + * NSSPKIXTerminalIdentifier_CreateFromUTF8 + * NSSPKIXTerminalIdentifier_Encode + * + */ + +/* + * NSSPKIXTerminalIdentifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTerminalIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTerminalIdentifier * +NSSPKIXTerminalIdentifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTerminalIdentifier_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTerminalIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTerminalIdentifier * +NSSPKIXTerminalIdentifier_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXTerminalIdentifier_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TERMINAL_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTerminalIdentifier_Encode +( + NSSPKIXTerminalIdentifier *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PrivateDomainName + * + * -- fgmr comments -- + * + * PrivateDomainName ::= CHOICE { + * numeric NumericString (SIZE (1..ub-domain-name-length)), + * printable PrintableString (SIZE (1..ub-domain-name-length)) } + * + * The public calls for this type: + * + * NSSPKIXPrivateDomainName_Decode + * NSSPKIXPrivateDomainName_CreateFromUTF8 + * NSSPKIXPrivateDomainName_Encode + * + */ + +/* + * NSSPKIXPrivateDomainName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateDomainName * +NSSPKIXPrivateDomainName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPrivateDomainName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateDomainName * +NSSPKIXPrivateDomainName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXPrivateDomainName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_DOMAIN_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPrivateDomainName_Encode +( + NSSPKIXPrivateDomainName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * OrganizationName + * + * -- fgmr comments -- + * + * OrganizationName ::= PrintableString + * (SIZE (1..ub-organization-name-length)) + * + * The public calls for this type: + * + * NSSPKIXOrganizationName_Decode + * NSSPKIXOrganizationName_CreateFromUTF8 + * NSSPKIXOrganizationName_Encode + * + */ + +/* + * NSSPKIXOrganizationName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationName * +NSSPKIXOrganizationName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXOrganizationName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationName * +NSSPKIXOrganizationName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXOrganizationName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATION_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXOrganizationName_Encode +( + NSSPKIXOrganizationName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NumericUserIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NumericUserIdentifier ::= NumericString + * (SIZE (1..ub-numeric-user-id-length)) + * + * The public calls for this type: + * + * NSSPKIXNumericUserIdentifier_Decode + * NSSPKIXNumericUserIdentifier_CreateFromUTF8 + * NSSPKIXNumericUserIdentifier_Encode + * + */ + +/* + * NSSPKIXNumericUserIdentifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNumericUserIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNumericUserIdentifier * +NSSPKIXNumericUserIdentifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXNumericUserIdentifier_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_UTF8 + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNumericUserIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNumericUserIdentifier * +NSSPKIXNumericUserIdentifier_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXNumericUserIdentifier_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NUMERIC_USER_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXNumericUserIdentifier_Encode +( + NSSPKIXNumericUserIdentifier *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PersonalName ::= SET { + * surname [0] PrintableString (SIZE (1..ub-surname-length)), + * given-name [1] PrintableString + * (SIZE (1..ub-given-name-length)) OPTIONAL, + * initials [2] PrintableString (SIZE (1..ub-initials-length)) OPTIONAL, + * generation-qualifier [3] PrintableString + * (SIZE (1..ub-generation-qualifier-length)) OPTIONAL } + * + * The public calls for this type: + * + * NSSPKIXPersonalName_Decode + * NSSPKIXPersonalName_Create + * NSSPKIXPersonalName_Destroy + * NSSPKIXPersonalName_Encode + * NSSPKIXPersonalName_GetSurname + * NSSPKIXPersonalName_SetSurname + * NSSPKIXPersonalName_HasGivenName + * NSSPKIXPersonalName_GetGivenName + * NSSPKIXPersonalName_SetGivenName + * NSSPKIXPersonalName_RemoveGivenName + * NSSPKIXPersonalName_HasInitials + * NSSPKIXPersonalName_GetInitials + * NSSPKIXPersonalName_SetInitials + * NSSPKIXPersonalName_RemoveInitials + * NSSPKIXPersonalName_HasGenerationQualifier + * NSSPKIXPersonalName_GetGenerationQualifier + * NSSPKIXPersonalName_SetGenerationQualifier + * NSSPKIXPersonalName_RemoveGenerationQualifier + * NSSPKIXPersonalName_Equal + * NSSPKIXPersonalName_Duplicate + * + */ + +/* + * NSSPKIXPersonalName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPersonalName * +NSSPKIXPersonalName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPersonalName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPersonalName * +NSSPKIXPersonalName_Create +( + NSSArena *arenaOpt, + NSSUTF8 *surname, + NSSUTF8 *givenNameOpt, + NSSUTF8 *initialsOpt, + NSSUTF8 *generationQualifierOpt +); + +/* + * NSSPKIXPersonalName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPersonalName_Destroy +( + NSSPKIXPersonalName *personalName +); + +/* + * NSSPKIXPersonalName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPersonalName_Encode +( + NSSPKIXPersonalName *personalName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPersonalName_GetSurname + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXPersonalName_GetSurname +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPersonalName_SetSurname + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPersonalName_SetSurname +( + NSSPKIXPersonalName *personalName, + NSSUTF8 *surname +); + +/* + * NSSPKIXPersonalName_HasGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPersonalName_HasGivenName +( + NSSPKIXPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * NSSPKIXPersonalName_GetGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_GIVEN_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXPersonalName_GetGivenName +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPersonalName_SetGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPersonalName_SetGivenName +( + NSSPKIXPersonalName *personalName, + NSSUTF8 *givenName +); + +/* + * NSSPKIXPersonalName_RemoveGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_HAS_NO_GIVEN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPersonalName_RemoveGivenName +( + NSSPKIXPersonalName *personalName +); + +/* + * NSSPKIXPersonalName_HasInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPersonalName_HasInitials +( + NSSPKIXPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * NSSPKIXPersonalName_GetInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXPersonalName_GetInitials +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPersonalName_SetInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPersonalName_SetInitials +( + NSSPKIXPersonalName *personalName, + NSSUTF8 *initials +); + +/* + * NSSPKIXPersonalName_RemoveInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPersonalName_RemoveInitials +( + NSSPKIXPersonalName *personalName +); + +/* + * NSSPKIXPersonalName_HasGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPersonalName_HasGenerationQualifier +( + NSSPKIXPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * NSSPKIXPersonalName_GetGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXPersonalName_GetGenerationQualifier +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPersonalName_SetGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPersonalName_SetGenerationQualifier +( + NSSPKIXPersonalName *personalName, + NSSUTF8 *generationQualifier +); + +/* + * NSSPKIXPersonalName_RemoveGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPersonalName_RemoveGenerationQualifier +( + NSSPKIXPersonalName *personalName +); + +/* + * NSSPKIXPersonalName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXPersonalName_Equal +( + NSSPKIXPersonalName *personalName1, + NSSPKIXPersonalName *personalName2, + PRStatus *statusOpt +); + +/* + * NSSPKIXPersonalName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSPKIXPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPersonalName * +NSSPKIXPersonalName_Duplicate +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * OrganizationalUnitNames + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units) + * OF OrganizationalUnitName + * + * The public calls for the type: + * + * NSSPKIXOrganizationalUnitNames_Decode + * NSSPKIXOrganizationalUnitNames_Create + * NSSPKIXOrganizationalUnitNames_Destroy + * NSSPKIXOrganizationalUnitNames_Encode + * NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitNameCount + * NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitNames + * NSSPKIXOrganizationalUnitNames_SetOrganizationalUnitNames + * NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitName + * NSSPKIXOrganizationalUnitNames_SetOrganizationalUnitName + * NSSPKIXOrganizationalUnitNames_InsertOrganizationalUnitName + * NSSPKIXOrganizationalUnitNames_AppendOrganizationalUnitName + * NSSPKIXOrganizationalUnitNames_RemoveOrganizationalUnitName + * NSSPKIXOrganizationalUnitNames_FindOrganizationalUnitName + * NSSPKIXOrganizationalUnitNames_Equal + * NSSPKIXOrganizationalUnitNames_Duplicate + * + */ + +/* + * NSSPKIXOrganizationalUnitNames_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitNames * +NSSPKIXOrganizationalUnitNames_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXOrganizationalUnitNames_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitNames * +NSSPKIXOrganizationalUnitNames_Create +( + NSSArena *arenaOpt, + NSSPKIXOrganizationalUnitName *ou1, + ... +); + +/* + * NSSPKIXOrganizationalUnitNames_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXOrganizationalUnitNames_Destroy +( + NSSPKIXOrganizationalUnitNames *ous +); + +/* + * NSSPKIXOrganizationalUnitNames_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXOrganizationalUnitNames_Encode +( + NSSPKIXOrganizationalUnitNames *ous, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitNameCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitNameCount +( + NSSPKIXOrganizationalUnitNames *ous +); + +/* + * NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXOrganizationalUnitName + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitName ** +NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitNames +( + NSSPKIXOrganizationalUnitNames *ous, + NSSPKIXOrganizationalUnitName *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXOrganizationalUnitNames_SetOrganizationalUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXOrganizationalUnitNames_SetOrganizationalUnitNames +( + NSSPKIXOrganizationalUnitNames *ous, + NSSPKIXOrganizationalUnitName *ou[], + PRInt32 count +); + +/* + * NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitName * +NSSPKIXOrganizationalUnitNames_GetOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXOrganizationalUnitNames_SetOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXOrganizationalUnitNames_SetOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + PRInt32 i, + NSSPKIXOrganizationalUnitName *ou +); + +/* + * NSSPKIXOrganizationalUnitNames_InsertOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXOrganizationalUnitNames_InsertOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + PRInt32 i, + NSSPKIXOrganizationalUnitName *ou +); + +/* + * NSSPKIXOrganizationalUnitNames_AppendOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXOrganizationalUnitNames_AppendOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + NSSPKIXOrganizationalUnitName *ou +); + +/* + * NSSPKIXOrganizationalUnitNames_RemoveOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXOrganizationalUnitNames_RemoveOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + PRInt32 i +); + +/* + * NSSPKIXOrganizationalUnitNames_FindOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * The index of the specified revoked certificate upon success + * -1 upon failure + */ + +NSS_EXTERN PRIntn +NSSPKIXOrganizationalUnitNames_FindOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + NSSPKIXOrganizationalUnitName *ou +); + +/* + * NSSPKIXOrganizationalUnitNames_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXOrganizationalUnitNames_Equal +( + NSSPKIXOrganizationalUnitNames *ous1, + NSSPKIXOrganizationalUnitNames *ous2, + PRStatus *statusOpt +); + +/* + * NSSPKIXOrganizationalUnitNames_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitNames * +NSSPKIXOrganizationalUnitNames_Duplicate +( + NSSPKIXOrganizationalUnitNames *ous, + NSSArena *arenaOpt +); + +/* + * OrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * OrganizationalUnitName ::= PrintableString (SIZE + * (1..ub-organizational-unit-name-length)) + * + * The public calls for this type: + * + * NSSPKIXOrganizationalUnitName_Decode + * NSSPKIXOrganizationalUnitName_CreateFromUTF8 + * NSSPKIXOrganizationalUnitName_Encode + * + */ + +/* + * NSSPKIXOrganizationalUnitName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitName * +NSSPKIXOrganizationalUnitName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXOrganizationalUnitName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitName * +NSSPKIXOrganizationalUnitName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXOrganizationalUnitName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXOrganizationalUnitName_Encode +( + NSSPKIXOrganizationalUnitName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * BuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE + * (1..ub-domain-defined-attributes) OF + * BuiltInDomainDefinedAttribute + * + * The public calls for this type: + * + * NSSPKIXBuiltInDomainDefinedAttributes_Decode + * NSSPKIXBuiltInDomainDefinedAttributes_Create + * NSSPKIXBuiltInDomainDefinedAttributes_Destroy + * NSSPKIXBuiltInDomainDefinedAttributes_Encode + * NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributeCount + * NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributes + * NSSPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttributes + * NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttribute + * NSSPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttribute + * NSSPKIXBuiltInDomainDefinedAttributes_InsertBuiltIndomainDefinedAttribute + * NSSPKIXBuiltInDomainDefinedAttributes_AppendBuiltIndomainDefinedAttribute + * NSSPKIXBuiltInDomainDefinedAttributes_RemoveBuiltIndomainDefinedAttribute + * NSSPKIXBuiltInDomainDefinedAttributes_Equal + * NSSPKIXBuiltInDomainDefinedAttributes_Duplicate + * + */ + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttributes * +NSSPKIXBuiltInDomainDefinedAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttributes * +NSSPKIXBuiltInDomainDefinedAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXBuiltInDomainDefinedAttribute *bidda1, + ... +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttributes_Destroy +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXBuiltInDomainDefinedAttributes_Encode +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributeCount +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXBuiltInDomainDefinedAttribute + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute ** +NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributes +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSPKIXBuiltInDomainDefinedAttribut *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttributes +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSPKIXBuiltInDomainDefinedAttribut *bidda[], + PRInt32 count +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute * +NSSPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + PRInt32 i, + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_InsertBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttributes_InsertBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + PRInt32 i, + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_AppendBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttributes_AppendBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_RemoveBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttributes_RemoveBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + PRInt32 i +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_FindBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * The index of the specified revoked certificate upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +NSSPKIXBuiltInDomainDefinedAttributes_FindBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInDomainDefinedAttributes_Equal +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas1, + NSSPKIXBuiltInDomainDefinedAttributes *biddas2, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInDomainDefinedAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttributes * +NSSPKIXBuiltInDomainDefinedAttributes_Duplicate +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSArena *arenaOpt +); + +/* + * BuiltInDomainDefinedAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInDomainDefinedAttribute ::= SEQUENCE { + * type PrintableString (SIZE + * (1..ub-domain-defined-attribute-type-length)), + * value PrintableString (SIZE + * (1..ub-domain-defined-attribute-value-length))} + * + * The public calls for this type: + * + * NSSPKIXBuiltInDomainDefinedAttribute_Decode + * NSSPKIXBuiltInDomainDefinedAttribute_Create + * NSSPKIXBuiltInDomainDefinedAttribute_Destroy + * NSSPKIXBuiltInDomainDefinedAttribute_Encode + * NSSPKIXBuiltInDomainDefinedAttribute_GetType + * NSSPKIXBuiltInDomainDefinedAttribute_SetType + * NSSPKIXBuiltInDomainDefinedAttribute_GetValue + * NSSPKIXBuiltInDomainDefinedAttribute_SetValue + * NSSPKIXBuiltInDomainDefinedAttribute_Equal + * NSSPKIXBuiltInDomainDefinedAttribute_Duplicate + * + */ + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute * +NSSPKIXBuiltInDomainDefinedAttribute_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute * +NSSPKIXBuiltInDomainDefinedAttribute_Create +( + NSSArena *arenaOpt, + NSSUTF8 *type, + NSSUTF8 *value +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttribute_Destroy +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXBuiltInDomainDefinedAttribute_Encode +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_GetType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXBuiltInDomainDefinedAttribute_GetType +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_SetType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttribute_SetType +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSUTF8 *type +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_GetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXBuiltInDomainDefinedAttribute_GetValue +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_SetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBuiltInDomainDefinedAttribute_SetValue +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSUTF8 *value +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXBuiltInDomainDefinedAttribute_Equal +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda1, + NSSPKIXBuiltInDomainDefinedAttribute *bidda2, + PRStatus *statusOpt +); + +/* + * NSSPKIXBuiltInDomainDefinedAttribute_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute * +NSSPKIXBuiltInDomainDefinedAttribute_Duplicate +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSArena *arenaOpt +); + +/* + * ExtensionAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF + * ExtensionAttribute + * + * The public calls for this type: + * + * NSSPKIXExtensionAttributes_Decode + * NSSPKIXExtensionAttributes_Create + * NSSPKIXExtensionAttributes_Destroy + * NSSPKIXExtensionAttributes_Encode + * NSSPKIXExtensionAttributes_GetExtensionAttributeCount + * NSSPKIXExtensionAttributes_GetExtensionAttributes + * NSSPKIXExtensionAttributes_SetExtensionAttributes + * NSSPKIXExtensionAttributes_GetExtensionAttribute + * NSSPKIXExtensionAttributes_SetExtensionAttribute + * NSSPKIXExtensionAttributes_InsertExtensionAttribute + * NSSPKIXExtensionAttributes_AppendExtensionAttribute + * NSSPKIXExtensionAttributes_RemoveExtensionAttribute + * NSSPKIXExtensionAttributes_FindExtensionAttribute + * NSSPKIXExtensionAttributes_Equal + * NSSPKIXExtensionAttributes_Duplicate + * + */ + +/* + * NSSPKIXExtensionAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributes * +NSSPKIXExtensionAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXExtensionAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributes * +NSSPKIXExtensionAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXExtensionAttribute ea1, + ... +); + +/* + * NSSPKIXExtensionAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttributes_Destroy +( + NSSPKIXExtensionAttributes *eas +); + +/* + * NSSPKIXExtensionAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXExtensionAttributes_Encode +( + NSSPKIXExtensionAttributes *eas + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtensionAttributes_GetExtensionAttributeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXExtensionAttributes_GetExtensionAttributeCount +( + NSSPKIXExtensionAttributes *eas +); + +/* + * NSSPKIXExtensionAttributes_GetExtensionAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXExtensionAttribute pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute ** +NSSPKIXExtensionAttributes_GetExtensionAttributes +( + NSSPKIXExtensionAttributes *eas, + NSSPKIXExtensionAttribute *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtensionAttributes_SetExtensionAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_INVALID_POINTER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttributes_SetExtensionAttributes +( + NSSPKIXExtensionAttributes *eas, + NSSPKIXExtensionAttribute *ea[], + PRInt32 count +); + +/* + * NSSPKIXExtensionAttributes_GetExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttribute upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute * +NSSPKIXExtensionAttributes_GetExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtensionAttributes_SetExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttributes_SetExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + PRInt32 i, + NSSPKIXExtensionAttribute *ea +); + +/* + * NSSPKIXExtensionAttributes_InsertExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttributes_InsertExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + PRInt32 i, + NSSPKIXExtensionAttribute *ea +); + +/* + * NSSPKIXExtensionAttributes_AppendExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttributes_AppendExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + NSSPKIXExtensionAttribute *ea +); + +/* + * NSSPKIXExtensionAttributes_RemoveExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttributes_RemoveExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + PRInt32 i, +); + +/* + * NSSPKIXExtensionAttributes_FindExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * A nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXExtensionAttributes_FindExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + NSSPKIXExtensionAttribute *ea +); + +/* + * NSSPKIXExtensionAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXExtensionAttributes_Equal +( + NSSPKIXExtensionAttributes *eas1, + NSSPKIXExtensionAttributes *eas2, + PRStatus *statusOpt +); + +/* + * NSSPKIXExtensionAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributes * +NSSPKIXExtensionAttributes_Duplicate +( + NSSPKIXExtensionAttributes *eas, + NSSArena *arenaOpt +); + +/* + * fgmr + * There should be accessors to search the ExtensionAttributes and + * return the value for a specific value, etc. + */ + +/* + * ExtensionAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionAttribute ::= SEQUENCE { + * extension-attribute-type [0] INTEGER (0..ub-extension-attributes), + * extension-attribute-value [1] + * ANY DEFINED BY extension-attribute-type } + * + * The public calls for this type: + * + * NSSPKIXExtensionAttribute_Decode + * NSSPKIXExtensionAttribute_Create + * NSSPKIXExtensionAttribute_Destroy + * NSSPKIXExtensionAttribute_Encode + * NSSPKIXExtensionAttribute_GetExtensionsAttributeType + * NSSPKIXExtensionAttribute_SetExtensionsAttributeType + * NSSPKIXExtensionAttribute_GetExtensionsAttributeValue + * NSSPKIXExtensionAttribute_SetExtensionsAttributeValue + * NSSPKIXExtensionAttribute_Equal + * NSSPKIXExtensionAttribute_Duplicate + * + */ + +/* + * NSSPKIXExtensionAttribute_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttribute upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute * +NSSPKIXExtensionAttribute_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXExtensionAttribute_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE_TYPE + * NSS_ERROR_INVALID_POINTER + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttribute upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute * +NSSPKIXExtensionAttribute_Create +( + NSSArena *arenaOpt, + NSSPKIXExtensionAttributeType type, + NSSItem *value +); + +/* + * NSSPKIXExtensionAttribute_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttribute_Destroy +( + NSSPKIXExtensionAttribute *ea +); + +/* + * NSSPKIXExtensionAttribute_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXExtensionAttribute_Encode +( + NSSPKIXExtensionAttribute *ea, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtensionAttribute_GetExtensionsAttributeType + * + * -- fgmr comments -- + * {One of these objects created from BER generated by a program + * adhering to a later version of the PKIX standards might have + * a value not mentioned in the enumeration definition. This isn't + * a bug.} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * A member of the NSSPKIXExtensionAttributeType enumeration + * upon success + * NSSPKIXExtensionAttributeType_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributeType +NSSPKIXExtensionAttribute_GetExtensionsAttributeType +( + NSSPKIXExtensionAttribute *ea +); + +/* + * NSSPKIXExtensionAttribute_SetExtensionsAttributeType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttribute_SetExtensionsAttributeType +( + NSSPKIXExtensionAttribute *ea, + NSSPKIXExtensionAttributeType type +); + +/* + * NSSPKIXExtensionAttribute_GetExtensionsAttributeValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +NSSPKIXExtensionAttribute_GetExtensionsAttributeValue +( + NSSPKIXExtensionAttribute *ea, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtensionAttribute_SetExtensionsAttributeValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtensionAttribute_SetExtensionsAttributeValue +( + NSSPKIXExtensionAttribute *ea, + NSSItem *value +); + +/* + * NSSPKIXExtensionAttribute_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXExtensionAttribute_Equal +( + NSSPKIXExtensionAttribute *ea1, + NSSPKIXExtensionAttribute *ea2, + PRStatus *statusOpt +); + +/* + * NSSPKIXExtensionAttribute_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttribute upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute * +NSSPKIXExtensionAttribute_Duplicate +( + NSSPKIXExtensionAttribute *ea, + NSSArena *arenaOpt +); + +/* + * CommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CommonName ::= PrintableString (SIZE (1..ub-common-name-length)) + * + * The public calls for this type: + * + * NSSPKIXCommonName_Decode + * NSSPKIXCommonName_CreateFromUTF8 + * NSSPKIXCommonName_Encode + * + */ + +/* + * NSSPKIXCommonName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCommonName * +NSSPKIXCommonName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXCommonName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCommonName * +NSSPKIXCommonName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXCommonName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_COMMON_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXCommonName_Encode +( + NSSPKIXCommonName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * TeletexCommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length)) + * + * The public calls for this type: + * + * NSSPKIXTeletexCommonName_Decode + * NSSPKIXTeletexCommonName_CreateFromUTF8 + * NSSPKIXTeletexCommonName_Encode + * + */ + +/* + * NSSPKIXTeletexCommonName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexCommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexCommonName * +NSSPKIXTeletexCommonName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTeletexCommonName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexCommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexCommonName * +NSSPKIXTeletexCommonName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXTeletexCommonName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_COMMON_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTeletexCommonName_Encode +( + NSSPKIXTeletexCommonName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * TeletexOrganizationName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationName ::= + * TeletexString (SIZE (1..ub-organization-name-length)) + * + * The public calls for this type: + * + * NSSPKIXTeletexOrganizationName_Decode + * NSSPKIXTeletexOrganizationName_CreateFromUTF8 + * NSSPKIXTeletexOrganizationName_Encode + * + */ + +/* + * NSSPKIXTeletexOrganizationName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationName * +NSSPKIXTeletexOrganizationName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTeletexOrganizationName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationName * +NSSPKIXTeletexOrganizationName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXTeletexOrganizationName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATION_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTeletexOrganizationName_Encode +( + NSSPKIXTeletexOrganizationName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * TeletexPersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexPersonalName ::= SET { + * surname [0] TeletexString (SIZE (1..ub-surname-length)), + * given-name [1] TeletexString + * (SIZE (1..ub-given-name-length)) OPTIONAL, + * initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL, + * generation-qualifier [3] TeletexString (SIZE + * (1..ub-generation-qualifier-length)) OPTIONAL } + * + * The public calls for this type: + * + * NSSPKIXTeletexPersonalName_Decode + * NSSPKIXTeletexPersonalName_Create + * NSSPKIXTeletexPersonalName_Destroy + * NSSPKIXTeletexPersonalName_Encode + * NSSPKIXTeletexPersonalName_GetSurname + * NSSPKIXTeletexPersonalName_SetSurname + * NSSPKIXTeletexPersonalName_HasGivenName + * NSSPKIXTeletexPersonalName_GetGivenName + * NSSPKIXTeletexPersonalName_SetGivenName + * NSSPKIXTeletexPersonalName_RemoveGivenName + * NSSPKIXTeletexPersonalName_HasInitials + * NSSPKIXTeletexPersonalName_GetInitials + * NSSPKIXTeletexPersonalName_SetInitials + * NSSPKIXTeletexPersonalName_RemoveInitials + * NSSPKIXTeletexPersonalName_HasGenerationQualifier + * NSSPKIXTeletexPersonalName_GetGenerationQualifier + * NSSPKIXTeletexPersonalName_SetGenerationQualifier + * NSSPKIXTeletexPersonalName_RemoveGenerationQualifier + * NSSPKIXTeletexPersonalName_Equal + * NSSPKIXTeletexPersonalName_Duplicate + * + */ + +/* + * NSSPKIXTeletexPersonalName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexPersonalName * +NSSPKIXTeletexPersonalName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTeletexPersonalName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXTeletexPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexPersonalName * +NSSPKIXTeletexPersonalName_Create +( + NSSArena *arenaOpt, + NSSUTF8 *surname, + NSSUTF8 *givenNameOpt, + NSSUTF8 *initialsOpt, + NSSUTF8 *generationQualifierOpt +); + +/* + * NSSPKIXTeletexPersonalName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexPersonalName_Destroy +( + NSSPKIXTeletexPersonalName *personalName +); + +/* + * NSSPKIXTeletexPersonalName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTeletexPersonalName_Encode +( + NSSPKIXTeletexPersonalName *personalName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexPersonalName_GetSurname + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXTeletexPersonalName_GetSurname +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexPersonalName_SetSurname + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexPersonalName_SetSurname +( + NSSPKIXTeletexPersonalName *personalName, + NSSUTF8 *surname +); + +/* + * NSSPKIXTeletexPersonalName_HasGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXTeletexPersonalName_HasGivenName +( + NSSPKIXTeletexPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * NSSPKIXTeletexPersonalName_GetGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXTeletexPersonalName_GetGivenName +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexPersonalName_SetGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexPersonalName_SetGivenName +( + NSSPKIXTeletexPersonalName *personalName, + NSSUTF8 *givenName +); + +/* + * NSSPKIXTeletexPersonalName_RemoveGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexPersonalName_RemoveGivenName +( + NSSPKIXTeletexPersonalName *personalName +); + +/* + * NSSPKIXTeletexPersonalName_HasInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXTeletexPersonalName_HasInitials +( + NSSPKIXTeletexPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * NSSPKIXTeletexPersonalName_GetInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXTeletexPersonalName_GetInitials +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexPersonalName_SetInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexPersonalName_SetInitials +( + NSSPKIXTeletexPersonalName *personalName, + NSSUTF8 *initials +); + +/* + * NSSPKIXTeletexPersonalName_RemoveInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexPersonalName_RemoveInitials +( + NSSPKIXTeletexPersonalName *personalName +); + +/* + * NSSPKIXTeletexPersonalName_HasGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXTeletexPersonalName_HasGenerationQualifier +( + NSSPKIXTeletexPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * NSSPKIXTeletexPersonalName_GetGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXTeletexPersonalName_GetGenerationQualifier +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexPersonalName_SetGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexPersonalName_SetGenerationQualifier +( + NSSPKIXTeletexPersonalName *personalName, + NSSUTF8 *generationQualifier +); + +/* + * NSSPKIXTeletexPersonalName_RemoveGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexPersonalName_RemoveGenerationQualifier +( + NSSPKIXTeletexPersonalName *personalName +); + +/* + * NSSPKIXTeletexPersonalName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXTeletexPersonalName_Equal +( + NSSPKIXTeletexPersonalName *personalName1, + NSSPKIXTeletexPersonalName *personalName2, + PRStatus *statusOpt +); + +/* + * NSSPKIXTeletexPersonalName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSPKIXTeletexPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexPersonalName * +NSSPKIXTeletexPersonalName_Duplicate +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * TeletexOrganizationalUnitNames + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationalUnitNames ::= SEQUENCE SIZE + * (1..ub-organizational-units) OF TeletexOrganizationalUnitName + * + * The public calls for the type: + * + * NSSPKIXTeletexOrganizationalUnitNames_Decode + * NSSPKIXTeletexOrganizationalUnitNames_Create + * NSSPKIXTeletexOrganizationalUnitNames_Destroy + * NSSPKIXTeletexOrganizationalUnitNames_Encode + * NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNameCount + * NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNames + * NSSPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitNames + * NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitName + * NSSPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitName + * NSSPKIXTeletexOrganizationalUnitNames_InsertTeletexOrganizationalUnitName + * NSSPKIXTeletexOrganizationalUnitNames_AppendTeletexOrganizationalUnitName + * NSSPKIXTeletexOrganizationalUnitNames_RemoveTeletexOrganizationalUnitName + * NSSPKIXTeletexOrganizationalUnitNames_FindTeletexOrganizationalUnitName + * NSSPKIXTeletexOrganizationalUnitNames_Equal + * NSSPKIXTeletexOrganizationalUnitNames_Duplicate + * + */ + +/* + * NSSPKIXTeletexOrganizationalUnitNames_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitNames * +NSSPKIXTeletexOrganizationalUnitNames_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitNames * +NSSPKIXTeletexOrganizationalUnitNames_Create +( + NSSArena *arenaOpt, + NSSPKIXTeletexOrganizationalUnitName *ou1, + ... +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexOrganizationalUnitNames_Destroy +( + NSSPKIXTeletexOrganizationalUnitNames *ous +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTeletexOrganizationalUnitNames_Encode +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNameCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNameCount +( + NSSPKIXTeletexOrganizationalUnitNames *ous +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXTeletexOrganizationalUnitName + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitName ** +NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNames +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSPKIXTeletexOrganizationalUnitName *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitNames +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSPKIXTeletexOrganizationalUnitName *ou[], + PRInt32 count +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitName * +NSSPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + PRInt32 i, + NSSPKIXTeletexOrganizationalUnitName *ou +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_InsertTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexOrganizationalUnitNames_InsertTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + PRInt32 i, + NSSPKIXTeletexOrganizationalUnitName *ou +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_AppendTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexOrganizationalUnitNames_AppendTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSPKIXTeletexOrganizationalUnitName *ou +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_RemoveTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexOrganizationalUnitNames_RemoveTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + PRInt32 i +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_FindTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * The index of the specified revoked certificate upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +NSSPKIXTeletexOrganizationalUnitNames_FindTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSPKIXTeletexOrganizationalUnitName *ou +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXTeletexOrganizationalUnitNames_Equal +( + NSSPKIXTeletexOrganizationalUnitNames *ous1, + NSSPKIXTeletexOrganizationalUnitNames *ous2, + PRStatus *statusOpt +); + +/* + * NSSPKIXTeletexOrganizationalUnitNames_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitNames * +NSSPKIXTeletexOrganizationalUnitNames_Duplicate +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSArena *arenaOpt +); + +/* + * TeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationalUnitName ::= TeletexString + * (SIZE (1..ub-organizational-unit-name-length)) + * + * The public calls for this type: + * + * NSSPKIXTeletexOrganizationalUnitName_Decode + * NSSPKIXTeletexOrganizationalUnitName_CreateFromUTF8 + * NSSPKIXTeletexOrganizationalUnitName_Encode + * + */ + +/* + * NSSPKIXTeletexOrganizationalUnitName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitName * +NSSPKIXTeletexOrganizationalUnitName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTeletexOrganizationalUnitName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitName * +NSSPKIXTeletexOrganizationalUnitName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXTeletexOrganizationalUnitName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTeletexOrganizationalUnitName_Encode +( + NSSPKIXTeletexOrganizationalUnitName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PDSName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PDSName ::= PrintableString (SIZE (1..ub-pds-name-length)) + * + * The public calls for this type: + * + * NSSPKIXPDSName_Decode + * NSSPKIXPDSName_CreateFromUTF8 + * NSSPKIXPDSName_Encode + * + */ + +/* + * NSSPKIXPDSName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSName * +NSSPKIXPDSName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPDSName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSName * +NSSPKIXPDSName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXPDSName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPDSName_Encode +( + NSSPKIXPDSName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PhysicalDeliveryCountryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PhysicalDeliveryCountryName ::= CHOICE { + * x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)), + * iso-3166-alpha2-code PrintableString + * (SIZE (ub-country-name-alpha-length)) } + * + * The public calls for this type: + * + * NSSPKIXPhysicalDeliveryCountryName_Decode + * NSSPKIXPhysicalDeliveryCountryName_CreateFromUTF8 + * NSSPKIXPhysicalDeliveryCountryName_Encode + * + */ + +/* + * NSSPKIXPhysicalDeliveryCountryName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPhysicalDeliveryCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPhysicalDeliveryCountryName * +NSSPKIXPhysicalDeliveryCountryName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPhysicalDeliveryCountryName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPhysicalDeliveryCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPhysicalDeliveryCountryName * +NSSPKIXPhysicalDeliveryCountryName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXPhysicalDeliveryCountryName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PHYSICAL_DELIVERY_COUNTRY_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPhysicalDeliveryCountryName_Encode +( + NSSPKIXPhysicalDeliveryCountryName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PostalCode + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PostalCode ::= CHOICE { + * numeric-code NumericString (SIZE (1..ub-postal-code-length)), + * printable-code PrintableString (SIZE (1..ub-postal-code-length)) } + * + * The public calls for this type: + * + * NSSPKIXPostalCode_Decode + * NSSPKIXPostalCode_CreateFromUTF8 + * NSSPKIXPostalCode_Encode + * + */ + +/* + * NSSPKIXPostalCode_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPostalCode upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPostalCode * +NSSPKIXPostalCode_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPostalCode_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPostalCode upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPostalCode * +NSSPKIXPostalCode_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXPostalCode_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POSTAL_CODE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPostalCode_Encode +( + NSSPKIXPostalCode *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PDSParameter + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PDSParameter ::= SET { + * printable-string PrintableString + * (SIZE(1..ub-pds-parameter-length)) OPTIONAL, + * teletex-string TeletexString + * (SIZE(1..ub-pds-parameter-length)) OPTIONAL } + * + * The public calls for this type: + * + * NSSPKIXPDSParameter_Decode + * NSSPKIXPDSParameter_CreateFromUTF8 + * NSSPKIXPDSParameter_Create + * NSSPKIXPDSParameter_Delete + * NSSPKIXPDSParameter_Encode + * NSSPKIXPDSParameter_GetUTF8Encoding + * NSSPKIXPDSParameter_HasPrintableString + * NSSPKIXPDSParameter_GetPrintableString + * NSSPKIXPDSParameter_SetPrintableString + * NSSPKIXPDSParameter_RemovePrintableString + * NSSPKIXPDSParameter_HasTeletexString + * NSSPKIXPDSParameter_GetTeletexString + * NSSPKIXPDSParameter_SetTeletexString + * NSSPKIXPDSParameter_RemoveTeletexString + * NSSPKIXPDSParameter_Equal + * NSSPKIXPDSParameter_Duplicate + */ + +/* + * NSSPKIXPDSParameter_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSParameter upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSParameter * +NSSPKIXPDSParameter_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPDSParameter_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSParameter upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSParameter * +NSSPKIXPDSParameter_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXPDSParameter_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXPDSParameter upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSParameter * +NSSPKIXPDSParameter_Create +( + NSSArena *arenaOpt, + NSSUTF8 *printableStringOpt, + NSSUTF8 *teletexStringOpt +); + +/* + * NSSPKIXPDSParameter_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPDSParameter_Destroy +( + NSSPKIXPDSParameter *p +); + +/* + * NSSPKIXPDSParameter_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPDSParameter_Encode +( + NSSPKIXPDSParameter *p, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPDSParameter_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXPDSParameter_GetUTF8Encoding +( + NSSPKIXPDSParameter *p, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPDSParameter_HasPrintableString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPDSParameter_HasPrintableString +( + NSSPKIXPDSParameter *p, + PRStatus *statusOpt +); + +/* + * NSSPKIXPDSParameter_GetPrintableString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXPDSParameter_GetPrintableString +( + NSSPKIXPDSParameter *p, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPDSParameter_SetPrintableString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPDSParameter_SetPrintableString +( + NSSPKIXPDSParameter *p, + NSSUTF8 *printableString +); + +/* + * NSSPKIXPDSParameter_RemovePrintableString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPDSParameter_RemovePrintableString +( + NSSPKIXPDSParameter *p +); + +/* + * NSSPKIXPDSParameter_HasTeletexString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPDSParameter_HasTeletexString +( + NSSPKIXPDSParameter *p, + PRStatus *statusOpt +); + +/* + * NSSPKIXPDSParameter_GetTeletexString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXPDSParameter_GetTeletexString +( + NSSPKIXPDSParameter *p, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPDSParameter_SetTeletexString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPDSParameter_SetTeletexString +( + NSSPKIXPDSParameter *p, + NSSUTF8 *teletexString +); + +/* + * NSSPKIXPDSParameter_RemoveTeletexString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPDSParameter_RemoveTeletexString +( + NSSPKIXPDSParameter *p +); + +/* + * NSSPKIXPDSParameter_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXPDSParameter_Equal +( + NSSPKIXPDSParameter *p1, + NSSPKIXPDSParameter *p2, + PRStatus *statusOpt +); + +/* + * NSSPKIXPDSParameter_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSParameter upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSParameter * +NSSPKIXPDSParameter_Duplicate +( + NSSPKIXPDSParameter *p, + NSSArena *arenaOpt +); + +/* + * fgmr: what about these PDS types? + * + * PhysicalDeliveryOfficeName + * + * PhysicalDeliveryOfficeNumber + * + * ExtensionORAddressComponents + * + * PhysicalDeliveryPersonalName + * + * PhysicalDeliveryOrganizationName + * + * ExtensionPhysicalDeliveryAddressComponents + * + * StreetAddress + * + * PostOfficeBoxAddress + * + * PosteRestanteAddress + * + * UniquePostalName + * + * LocalPostalAttributes + * + */ + +/* + * UnformattedPostalAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UnformattedPostalAddress ::= SET { + * printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF + * PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL, + * teletex-string TeletexString + * (SIZE (1..ub-unformatted-address-length)) OPTIONAL } + * + * The public calls for the type: + * + * + */ + +/* + * ExtendedNetworkAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtendedNetworkAddress ::= CHOICE { + * e163-4-address SEQUENCE { + * number [0] NumericString (SIZE (1..ub-e163-4-number-length)), + * sub-address [1] NumericString + * (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, + * psap-address [0] PresentationAddress } + * + * The public calls for the type: + * + * NSSPKIXExtendedNetworkAddress_Decode + * NSSPKIXExtendedNetworkAddress_Create + * NSSPKIXExtendedNetworkAddress_Destroy + * NSSPKIXExtendedNetworkAddress_Encode + * NSSPKIXExtendedNetworkAddress_GetChoice + * NSSPKIXExtendedNetworkAddress_Get + * NSSPKIXExtendedNetworkAddress_GetE1634Address + * NSSPKIXExtendedNetworkAddress_GetPsapAddress + * NSSPKIXExtendedNetworkAddress_Set + * NSSPKIXExtendedNetworkAddress_SetE163Address + * NSSPKIXExtendedNetworkAddress_SetPsapAddress + * NSSPKIXExtendedNetworkAddress_Equal + * NSSPKIXExtendedNetworkAddress_Duplicate + * + */ + +/* + * NSSPKIXExtendedNetworkAddress_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +NSSPKIXExtendedNetworkAddress_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXExtendedNetworkAddress_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_PKIX_PRESENTATION_ADDRESS + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +NSSPKIXExtendedNetworkAddress_Create +( + NSSArena *arenaOpt, + NSSPKIXExtendedNetworkAddressChoice choice, + void *address +); + +/* + * NSSPKIXExtendedNetworkAddress_CreateFromE1634Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +NSSPKIXExtendedNetworkAddress_CreateFromE1634Address +( + NSSArena *arenaOpt, + NSSPKIXe1634Address *e1634address +); + +/* + * NSSPKIXExtendedNetworkAddress_CreateFromPresentationAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_PRESENTATION_ADDRESS + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +NSSPKIXExtendedNetworkAddress_CreateFromPresentationAddress +( + NSSArena *arenaOpt, + NSSPKIXPresentationAddress *presentationAddress +); + +/* + * NSSPKIXExtendedNetworkAddress_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtendedNetworkAddress_Destroy +( + NSSPKIXExtendedNetworkAddress *ena +); + +/* + * NSSPKIXExtendedNetworkAddress_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXExtendedNetworkAddress_Encode +( + NSSPKIXExtendedNetworkAddress *ena, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtendedNetworkAddress_GetChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * + * Return value: + * A valid element of the NSSPKIXExtendedNetworkAddressChoice upon + * success + * The value NSSPKIXExtendedNetworkAddress_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddressChoice +NSSPKIXExtendedNetworkAddress_GetChoice +( + NSSPKIXExtendedNetworkAddress *ena +); + +/* + * NSSPKIXExtendedNetworkAddress_GetSpecifiedChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A pointer... + * NULL upon failure + */ + +NSS_EXTERN void * +NSSPKIXExtendedNetworkAddress_GetSpecifiedChoice +( + NSSPKIXExtendedNetworkAddress *ena, + NSSPKIXExtendedNetworkAddressChoice which, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtendedNetworkAddress_GetE1634Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A valid pointer to an NSSPKIXe1643Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXe1643Address * +NSSPKIXExtendedNetworkAddress_GetE1634Address +( + NSSPKIXExtendedNetworkAddress *ena, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtendedNetworkAddress_GetPresentationAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A valid pointer to an NSSPKIXPresentationAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPresentationAddress * +NSSPKIXExtendedNetworkAddress_GetPresentationAddress +( + NSSPKIXExtendedNetworkAddress *ena, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtendedNetworkAddress_SetSpecifiedChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_PKIX_PRESENTATION_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtendedNetworkAddress_SetSpecifiedChoice +( + NSSPKIXExtendedNetworkAddress *ena, + NSSPKIXExtendedNetworkAddressChoice which, + void *address +); + +/* + * NSSPKIXExtendedNetworkAddress_SetE163Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtendedNetworkAddress_SetE163Address +( + NSSPKIXExtendedNetworkAddress *ena, + NSSPKIXe1634Address *e1634address +); + +/* + * NSSPKIXExtendedNetworkAddress_SetPresentationAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_PRESENTATION_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtendedNetworkAddress_SetPresentationAddress +( + NSSPKIXExtendedNetworkAddress *ena, + NSSPKIXPresentationAddress *presentationAddress +); + +/* + * NSSPKIXExtendedNetworkAddress_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXExtendedNetworkAddress_Equal +( + NSSPKIXExtendedNetworkAddress *ena1, + NSSPKIXExtendedNetworkAddress *ena2, + PRStatus *statusOpt +); + +/* + * NSSPKIXExtendedNetworkAddress_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +NSSPKIXExtendedNetworkAddress_Duplicate +( + NSSPKIXExtendedNetworkAddress *ena, + NSSArena *arenaOpt +); + +/* + * e163-4-address + * + * Helper structure for ExtendedNetworkAddress. + * -- fgmr comments -- + * + * From RFC 2459: + * + * e163-4-address SEQUENCE { + * number [0] NumericString (SIZE (1..ub-e163-4-number-length)), + * sub-address [1] NumericString + * (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, + * + * The public calls for the type: + * + * NSSPKIXe1634Address_Decode + * NSSPKIXe1634Address_Create + * NSSPKIXe1634Address_Destroy + * NSSPKIXe1634Address_Encode + * NSSPKIXe1634Address_GetNumber + * NSSPKIXe1634Address_SetNumber + * NSSPKIXe1634Address_HasSubAddress + * NSSPKIXe1634Address_GetSubAddress + * NSSPKIXe1634Address_SetSubAddress + * NSSPKIXe1634Address_RemoveSubAddress + * NSSPKIXe1634Address_Equal + * NSSPKIXe1634Address_Duplicate + * + */ + +/* + * NSSPKIXe1634Address_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXe1634Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXe1634Address * +NSSPKIXe1634Address_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXe1634Address_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXe1634Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXe1634Address * +NSSPKIXe1634Address_Create +( + NSSArena *arenaOpt, + NSSUTF8 *number, + NSSUTF8 *subAddressOpt +); + +/* + * NSSPKIXe1634Address_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXe1634Address_Destroy +( + NSSPKIXe1634Address *e +); + +/* + * NSSPKIXe1634Address_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXe1634Address_Encode +( + NSSPKIXe1634Address *e, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXe1634Address_GetNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXe1634Address_GetNumber +( + NSSPKIXe1634Address *e, + NSSArena *arenaOpt +); + +/* + * NSSPKIXe1634Address_SetNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXe1634Address_SetNumber +( + NSSPKIXe1634Address *e, + NSSUTF8 *number +); + +/* + * NSSPKIXe1634Address_HasSubAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXe1634Address_HasSubAddress +( + NSSPKIXe1634Address *e, + PRStatus *statusOpt +); + +/* + * NSSPKIXe1634Address_GetSubAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXe1634Address_GetSubAddress +( + NSSPKIXe1634Address *e, + NSSArena *arenaOpt +); + +/* + * NSSPKIXe1634Address_SetSubAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXe1634Address_SetSubAddress +( + NSSPKIXe1634Address *e, + NSSUTF8 *subAddress +); + +/* + * NSSPKIXe1634Address_RemoveSubAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXe1634Address_RemoveSubAddress +( + NSSPKIXe1634Address *e +); + +/* + * NSSPKIXe1634Address_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXe1634Address_Equal +( + NSSPKIXe1634Address *e1, + NSSPKIXe1634Address *e2, + PRStatus *statusOpt +); + +/* + * NSSPKIXe1634Address_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXe1634Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXe1634Address * +NSSPKIXe1634Address_Duplicate +( + NSSPKIXe1634Address *e, + NSSArena *arenaOpt +); + +/* + * PresentationAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PresentationAddress ::= SEQUENCE { + * pSelector [0] EXPLICIT OCTET STRING OPTIONAL, + * sSelector [1] EXPLICIT OCTET STRING OPTIONAL, + * tSelector [2] EXPLICIT OCTET STRING OPTIONAL, + * nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING } + * + * The public calls for the type: + * + * NSSPKIXPresentationAddress_Decode + * NSSPKIXPresentationAddress_Create + * NSSPKIXPresentationAddress_Destroy + * NSSPKIXPresentationAddress_Encode + * NSSPKIXPresentationAddress_HasPSelector + * NSSPKIXPresentationAddress_GetPSelector + * NSSPKIXPresentationAddress_SetPSelector + * NSSPKIXPresentationAddress_RemovePSelector + * NSSPKIXPresentationAddress_HasSSelector + * NSSPKIXPresentationAddress_GetSSelector + * NSSPKIXPresentationAddress_SetSSelector + * NSSPKIXPresentationAddress_RemoveSSelector + * NSSPKIXPresentationAddress_HasTSelector + * NSSPKIXPresentationAddress_GetTSelector + * NSSPKIXPresentationAddress_SetTSelector + * NSSPKIXPresentationAddress_RemoveTSelector + * NSSPKIXPresentationAddress_HasNAddresses + * NSSPKIXPresentationAddress_GetNAddresses + * NSSPKIXPresentationAddress_SetNAddresses + * NSSPKIXPresentationAddress_RemoveNAddresses + *{NAddresses must be more complex than that} + * NSSPKIXPresentationAddress_Compare + * NSSPKIXPresentationAddress_Duplicate + * + */ + +/* + * TeletexDomainDefinedAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexDomainDefinedAttributes ::= SEQUENCE SIZE + * (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute + * + * The public calls for the type: + * + * NSSPKIXTeletexDomainDefinedAttributes_Decode + * NSSPKIXTeletexDomainDefinedAttributes_Create + * NSSPKIXTeletexDomainDefinedAttributes_Destroy + * NSSPKIXTeletexDomainDefinedAttributes_Encode + * NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributeCount + * NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributes + * NSSPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttributes + * NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttribute + * NSSPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttribute + * NSSPKIXTeletexDomainDefinedAttributes_InsertTeletexDomainDefinedAttribute + * NSSPKIXTeletexDomainDefinedAttributes_AppendTeletexDomainDefinedAttribute + * NSSPKIXTeletexDomainDefinedAttributes_RemoveTeletexDomainDefinedAttribute + * NSSPKIXTeletexDomainDefinedAttributes_FindTeletexDomainDefinedAttribute + * NSSPKIXTeletexDomainDefinedAttributes_Equal + * NSSPKIXTeletexDomainDefinedAttributes_Duplicate + * + */ + +/* + * NSSPKIXTeletexDomainDefinedAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttributes * +NSSPKIXTeletexDomainDefinedAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttributes * +NSSPKIXTeletexDomainDefinedAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXTeletexDomainDefinedAttribute *tdda1, + ... +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttributes_Destroy +( + NSSPKIXTeletexDomainDefinedAttributes *tddas +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTeletexDomainDefinedAttributes_Encode +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributeCount +( + NSSPKIXTeletexDomainDefinedAttributes *tddas +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXTeletexDomainDefinedAttribute + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute ** +NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributes +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSPKIXTeletexDomainDefinedAttribute *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttributes +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSPKIXTeletexDomainDefinedAttribute *tdda[], + PRInt32 count +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +NSSPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + PRInt32 i, + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_InsertTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttributes_InsertTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + PRInt32 i, + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_AppendTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttributes_AppendTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_RemoveTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttributes_RemoveTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + PRInt32 i +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_FindTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * The nonnegative integer upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +NSSPKIXTeletexDomainDefinedAttributes_FindTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXTeletexDomainDefinedAttributes_Equal +( + NSSPKIXTeletexDomainDefinedAttributes *tddas1, + NSSPKIXTeletexDomainDefinedAttributes *tddas2, + PRStatus *statusOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttributes * +NSSPKIXTeletexDomainDefinedAttributes_Duplicate +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSArena *arenaOpt +); + +/* + * TeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexDomainDefinedAttribute ::= SEQUENCE { + * type TeletexString + * (SIZE (1..ub-domain-defined-attribute-type-length)), + * value TeletexString + * (SIZE (1..ub-domain-defined-attribute-value-length)) } + * + * The public calls for the type: + * + * NSSPKIXTeletexDomainDefinedAttribute_Decode + * NSSPKIXTeletexDomainDefinedAttribute_CreateFromUTF8 + * NSSPKIXTeletexDomainDefinedAttribute_Create + * NSSPKIXTeletexDomainDefinedAttribute_Destroy + * NSSPKIXTeletexDomainDefinedAttribute_Encode + * NSSPKIXTeletexDomainDefinedAttribute_GetUTF8Encoding + * NSSPKIXTeletexDomainDefinedAttribute_GetType + * NSSPKIXTeletexDomainDefinedAttribute_SetType + * NSSPKIXTeletexDomainDefinedAttribute_GetValue + * NSSPKIXTeletexDomainDefinedAttribute_GetValue + * NSSPKIXTeletexDomainDefinedAttribute_Equal + * NSSPKIXTeletexDomainDefinedAttribute_Duplicate + * + */ + +/* + * NSSPKIXTeletexDomainDefinedAttribute_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +NSSPKIXTeletexDomainDefinedAttribute_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +NSSPKIXTeletexDomainDefinedAttribute_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +NSSPKIXTeletexDomainDefinedAttribute_Create +( + NSSArena *arenaOpt, + NSSUTF8 *type, + NSSUTF8 *value +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttribute_Destroy +( + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXTeletexDomainDefinedAttribute_Encode +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXTeletexDomainDefinedAttribute_GetUTF8Encoding +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_GetType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXTeletexDomainDefinedAttribute_GetType +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_SetType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttribute_SetType +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSUTF8 *type +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_GetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXTeletexDomainDefinedAttribute_GetValue +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSArena *arenaOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_SetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXTeletexDomainDefinedAttribute_SetValue +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSUTF8 *value +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXTeletexDomainDefinedAttribute_Equal +( + NSSPKIXTeletexDomainDefinedAttribute *tdda1, + NSSPKIXTeletexDomainDefinedAttribute *tdda2, + PRStatus *statusOpt +); + +/* + * NSSPKIXTeletexDomainDefinedAttribute_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +NSSPKIXTeletexDomainDefinedAttribute_Duplicate +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSArena *arenaOpt +); + +/* + * AuthorityKeyIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AuthorityKeyIdentifier ::= SEQUENCE { + * keyIdentifier [0] KeyIdentifier OPTIONAL, + * authorityCertIssuer [1] GeneralNames OPTIONAL, + * authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL } + * -- authorityCertIssuer and authorityCertSerialNumber shall both + * -- be present or both be absent + * + * The public calls for the type: + * + * NSSPKIXAuthorityKeyIdentifier_Decode + * NSSPKIXAuthorityKeyIdentifier_Create + * NSSPKIXAuthorityKeyIdentifier_Destroy + * NSSPKIXAuthorityKeyIdentifier_Encode + * NSSPKIXAuthorityKeyIdentifier_HasKeyIdentifier + * NSSPKIXAuthorityKeyIdentifier_GetKeyIdentifier + * NSSPKIXAuthorityKeyIdentifier_SetKeyIdentifier + * NSSPKIXAuthorityKeyIdentifier_RemoveKeyIdentifier + * NSSPKIXAuthorityKeyIdentifier_HasAuthorityCertIssuerAndSerialNumber + * NSSPKIXAuthorityKeyIdentifier_RemoveAuthorityCertIssuerAndSerialNumber + * NSSPKIXAuthorityKeyIdentifier_GetAuthorityCertIssuer + * NSSPKIXAuthorityKeyIdentifier_GetAuthorityCertSerialNumber + * NSSPKIXAuthorityKeyIdentifier_SetAuthorityCertIssuerAndSerialNumber + * NSSPKIXAuthorityKeyIdentifier_Equal + * NSSPKIXAuthorityKeyIdentifier_Duplicate + * + */ + +/* + * NSSPKIXAuthorityKeyIdentifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityKeyIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityKeyIdentifier * +NSSPKIXAuthorityKeyIdentifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXAuthorityKeyIdentifier_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ARGUMENTS + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityKeyIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityKeyIdentifier * +NSSPKIXAuthorityKeyIdentifier_Create +( + NSSArena *arenaOpt, + NSSPKIXKeyIdentifier *keyIdentifierOpt, + NSSPKIXGeneralNames *authorityCertIssuerOpt, + NSSPKIXCertificateSerialNumber *authorityCertSerialNumberOpt +); + +/* + * NSSPKIXAuthorityKeyIdentifier_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityKeyIdentifier_Destroy +( + NSSPKIXAuthorityKeyIdentifier *aki +); + +/* + * NSSPKIXAuthorityKeyIdentifier_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXAuthorityKeyIdentifier_Encode +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAuthorityKeyIdentifier_HasKeyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXAuthorityKeyIdentifier_HasKeyIdentifier +( + NSSPKIXAuthorityKeyIdentifier *aki, + PRStatus *statusOpt +); + +/* + * NSSPKIXAuthorityKeyIdentifier_GetKeyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_KEY_IDENTIFIER + * + * Return value: + * A valid pointer to an NSSPKIXKeyIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyIdentifier * +NSSPKIXAuthorityKeyIdentifier_GetKeyIdentifier +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSPKIXKeyIdentifier *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAuthorityKeyIdentifier_SetKeyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityKeyIdentifier_SetKeyIdentifier +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSPKIXKeyIdentifier *keyIdentifier +); + +/* + * NSSPKIXAuthorityKeyIdentifier_RemoveKeyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_HAS_NO_KEY_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityKeyIdentifier_RemoveKeyIdentifier +( + NSSPKIXAuthorityKeyIdentifier *aki +); + +/* + * NSSPKIXAuthorityKeyIdentifier_HasAuthorityCertIssuerAndSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_TRUE if it has them + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXAuthorityKeyIdentifier_HasAuthorityCertIssuerAndSerialNumber +( + NSSPKIXAuthorityKeyIdentifier *aki, + PRStatus *statusOpt +); + +/* + * NSSPKIXAuthorityKeyIdentifier_RemoveAuthorityCertIssuerAndSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_HAS_NO_AUTHORITY_CERT_ISSUER_AND_SERIAL_NUMBER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityKeyIdentifier_RemoveAuthorityCertIssuerAndSerialNumber +( + NSSPKIXAuthorityKeyIdentifier *aki +); + +/* + * NSSPKIXAuthorityKeyIdentifier_GetAuthorityCertIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_AUTHORITY_CERT_ISSUER_AND_SERIAL_NUMBER + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +NSSPKIXAuthorityKeyIdentifier_GetAuthorityCertIssuer +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAuthorityKeyIdentifier_GetAuthorityCertSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_AUTHORITY_CERT_ISSUER_AND_SERIAL_NUMBER + * + * Return value: + * A valid pointer to an NSSPKIXCertificateSerialNumber upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateSerialNumber * +NSSPKIXAuthorityKeyIdentifier_GetAuthorityCertSerialNumber +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSPKIXCertificateSerialNumber *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAuthorityKeyIdentifier_SetAuthorityCertIssuerAndSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityKeyIdentifier_SetAuthorityCertIssuerAndSerialNumber +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSPKIXGeneralNames *issuer, + NSSPKIXCertificateSerialNumber *serialNumber +); + +/* + * NSSPKIXAuthorityKeyIdentifier_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXAuthorityKeyIdentifier_Equal +( + NSSPKIXAuthorityKeyIdentifier *aki1, + NSSPKIXAuthorityKeyIdentifier *aki2, + PRStatus *statusOpt +); + +/* + * NSSPKIXAuthorityKeyIdentifier_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityKeyIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityKeyIdentifier * +NSSPKIXAuthorityKeyIdentifier_Duplicate +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSArena *arenaOpt +); + +/* + * KeyUsage + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * KeyUsage ::= BIT STRING { + * digitalSignature (0), + * nonRepudiation (1), + * keyEncipherment (2), + * dataEncipherment (3), + * keyAgreement (4), + * keyCertSign (5), + * cRLSign (6), + * encipherOnly (7), + * decipherOnly (8) } + * + * The public calls for the type: + * + * NSSPKIXKeyUsage_Decode + * NSSPKIXKeyUsage_CreateFromUTF8 + * NSSPKIXKeyUsage_CreateFromValue + * NSSPKIXKeyUsage_Destroy + * NSSPKIXKeyUsage_Encode + * NSSPKIXKeyUsage_GetUTF8Encoding + * NSSPKIXKeyUsage_GetValue + * NSSPKIXKeyUsage_SetValue + * { bitwise accessors? } + * NSSPKIXKeyUsage_Equal + * NSSPKIXKeyUsage_Duplicate + * + */ + +/* + * NSSPKIXKeyUsage_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyUsage upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyUsage * +NSSPKIXKeyUsage_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXKeyUsage_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyUsage upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyUsage * +NSSPKIXKeyUsage_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXKeyUsage_CreateFromValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE_VALUE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyUsage upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyUsage * +NSSPKIXKeyUsage_CreateFromValue +( + NSSArena *arenaOpt, + NSSPKIXKeyUsageValue value +); + +/* + * NSSPKIXKeyUsage_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXKeyUsage_Destroy +( + NSSPKIXKeyUsage *keyUsage +); + +/* + * NSSPKIXKeyUsage_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXKeyUsage_Encode +( + NSSPKIXKeyUsage *keyUsage, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXKeyUsage_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXKeyUsage_GetUTF8Encoding +( + NSSPKIXKeyUsage *keyUsage, + NSSArena *arenaOpt +); + +/* + * NSSPKIXKeyUsage_GetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * + * Return value: + * A set of NSSKeyUsageValue values OR-d together upon success + * NSSKeyUsage_NSSinvalid upon failure + */ + +NSS_EXTERN NSSKeyUsageValue +NSSPKIXKeyUsage_GetValue +( + NSSPKIXKeyUsage *keyUsage +); + +/* + * NSSPKIXKeyUsage_SetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * NSS_ERROR_INVALID_PKIX_KEY_USAGE_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXKeyUsage_SetValue +( + NSSPKIXKeyUsage *keyUsage, + NSSPKIXKeyUsageValue value +); + +/* + * NSSPKIXKeyUsage_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXKeyUsage_Equal +( + NSSPKIXKeyUsage *keyUsage1, + NSSPKIXKeyUsage *keyUsage2, + PRStatus *statusOpt +); + +/* + * NSSPKIXKeyUsage_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyUsage upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyUsage * +NSSPKIXKeyUsage_Duplicate +( + NSSPKIXKeyUsage *keyUsage, + NSSArena *arenaOpt +); + +/* + * PrivateKeyUsagePeriod + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PrivateKeyUsagePeriod ::= SEQUENCE { + * notBefore [0] GeneralizedTime OPTIONAL, + * notAfter [1] GeneralizedTime OPTIONAL } + * -- either notBefore or notAfter shall be present + * + * The public calls for the type: + * + * NSSPKIXPrivateKeyUsagePeriod_Decode + * NSSPKIXPrivateKeyUsagePeriod_Create + * NSSPKIXPrivateKeyUsagePeriod_Destroy + * NSSPKIXPrivateKeyUsagePeriod_Encode + * NSSPKIXPrivateKeyUsagePeriod_HasNotBefore + * NSSPKIXPrivateKeyUsagePeriod_GetNotBefore + * NSSPKIXPrivateKeyUsagePeriod_SetNotBefore + * NSSPKIXPrivateKeyUsagePeriod_RemoveNotBefore + * NSSPKIXPrivateKeyUsagePeriod_HasNotAfter + * NSSPKIXPrivateKeyUsagePeriod_GetNotAfter + * NSSPKIXPrivateKeyUsagePeriod_SetNotAfter + * NSSPKIXPrivateKeyUsagePeriod_RemoveNotAfter + * NSSPKIXPrivateKeyUsagePeriod_Equal + * NSSPKIXPrivateKeyUsagePeriod_Duplicate + * + */ + +/* + * NSSPKIXPrivateKeyUsagePeriod_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod * +NSSPKIXPrivateKeyUsagePeriod_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_TIME + * NSS_ERROR_INVALID_ARGUMENTS + * + * Return value: + * A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod * +NSSPKIXPrivateKeyUsagePeriod_Create +( + NSSArena *arenaOpt, + NSSTime *notBeforeOpt, + NSSTime *notAfterOpt +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPrivateKeyUsagePeriod_Destroy +( + NSSPKIXPrivateKeyUsagePeriod *period +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_DATA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPrivateKeyUsagePeriod_Encode +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_HasNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPrivateKeyUsagePeriod_HasNotBefore +( + NSSPKIXPrivateKeyUsagePeriod *period, + PRStatus *statusOpt +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_GetNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_NOT_BEFORE + * + * Return value: + * NSSTime {fgmr!} + * NULL upon failure + */ + +NSS_EXTERN NSSTime * +NSSPKIXPrivateKeyUsagePeriod_GetNotBefore +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_SetNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_TIME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPrivateKeyUsagePeriod_SetNotBefore +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSTime *notBefore +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_RemoveNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_HAS_NO_NOT_BEFORE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPrivateKeyUsagePeriod_RemoveNotBefore +( + NSSPKIXPrivateKeyUsagePeriod *period +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_HasNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPrivateKeyUsagePeriod_HasNotAfter +( + NSSPKIXPrivateKeyUsagePeriod *period, + PRStatus *statusOpt +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_GetNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_NOT_AFTER + * + * Return value: + * NSSTime {fgmr!} + * NULL upon failure + */ + +NSS_EXTERN NSSTime * +NSSPKIXPrivateKeyUsagePeriod_GetNotAfter +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_SetNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_TIME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPrivateKeyUsagePeriod_SetNotAfter +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSTime *notAfter +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_RemoveNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_HAS_NO_NOT_AFTER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPrivateKeyUsagePeriod_RemoveNotAfter +( + NSSPKIXPrivateKeyUsagePeriod *period +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXPrivateKeyUsagePeriod_Equal +( + NSSPKIXPrivateKeyUsagePeriod *period1, + NSSPKIXPrivateKeyUsagePeriod *period2, + PRStatus *statusOpt +); + +/* + * NSSPKIXPrivateKeyUsagePeriod_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod * +NSSPKIXPrivateKeyUsagePeriod_Duplicate +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSArena *arenaOpt +); + +/* + * CertificatePolicies + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation + * + * The public calls for the type: + * + * NSSPKIXCertificatePolicies_Decode + * NSSPKIXCertificatePolicies_Create + * NSSPKIXCertificatePolicies_Destroy + * NSSPKIXCertificatePolicies_Encode + * NSSPKIXCertificatePolicies_GetPolicyInformationCount + * NSSPKIXCertificatePolicies_GetPolicyInformations + * NSSPKIXCertificatePolicies_SetPolicyInformations + * NSSPKIXCertificatePolicies_GetPolicyInformation + * NSSPKIXCertificatePolicies_SetPolicyInformation + * NSSPKIXCertificatePolicies_InsertPolicyInformation + * NSSPKIXCertificatePolicies_AppendPolicyInformation + * NSSPKIXCertificatePolicies_RemovePolicyInformation + * NSSPKIXCertificatePolicies_FindPolicyInformation + * NSSPKIXCertificatePolicies_Equal + * NSSPKIXCertificatePolicies_Duplicate + * + */ + +/* + * NSSPKIXCertificatePolicies_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCertificatePolicies upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificatePolicies * +NSSPKIXCertificatePolicies_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXCertificatePolicies_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * A valid pointer to an NSSPKIXCertificatePolicies upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificatePolicies * +NSSPKIXCertificatePolicies_Create +( + NSSArena *arenaOpt, + NSSPKIXPolicyInformation *pi1, + ... +); + +/* + * NSSPKIXCertificatePolicies_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificatePolicies_Destroy +( + NSSPKIXCertificatePolicies *cp +); + +/* + * NSSPKIXCertificatePolicies_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXCertificatePolicies_Encode +( + NSSPKIXCertificatePolicies *cp, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificatePolicies_GetPolicyInformationCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXCertificatePolicies_GetPolicyInformationCount +( + NSSPKIXCertificatePolicies *cp +); + +/* + * NSSPKIXCertificatePolicies_GetPolicyInformations + * + * We regret the function name. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXPolicyInformation pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation ** +NSSPKIXCertificatePolicies_GetPolicyInformations +( + NSSPKIXCertificatePolicies *cp, + NSSPKIXPolicyInformation *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificatePolicies_SetPolicyInformations + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificatePolicies_SetPolicyInformations +( + NSSPKIXCertificatePolicies *cp, + NSSPKIXPolicyInformation *pi[], + PRInt32 count +); + +/* + * NSSPKIXCertificatePolicies_GetPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyInformation upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation * +NSSPKIXCertificatePolicies_GetPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCertificatePolicies_SetPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificatePolicies_SetPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + PRInt32 i, + NSSPKIXPolicyInformation *pi +); + +/* + * NSSPKIXCertificatePolicies_InsertPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificatePolicies_InsertPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + PRInt32 i, + NSSPKIXPolicyInformation *pi +); + +/* + * NSSPKIXCertificatePolicies_AppendPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificatePolicies_AppendPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + NSSPKIXPolicyInformation *pi +); + +/* + * NSSPKIXCertificatePolicies_RemovePolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCertificatePolicies_RemovePolicyInformation +( + NSSPKIXCertificatePolicies *cp, + PRInt32 i +); + +/* + * NSSPKIXCertificatePolicies_FindPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * The nonnegative integer upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +NSSPKIXCertificatePolicies_FindPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + NSSPKIXPolicyInformation *pi +); + +/* + * NSSPKIXCertificatePolicies_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXCertificatePolicies_Equal +( + NSSPKIXCertificatePolicies *cp1, + NSSPKIXCertificatePolicies *cp2, + PRStatus *statusOpt +); + +/* + * NSSPKIXCertificatePolicies_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCertificatePolicies upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificatePolicies * +NSSPKIXCertificatePolicies_Duplicate +( + NSSPKIXCertificatePolicies *cp, + NSSArena *arenaOpt +); + +/* + * PolicyInformation + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyInformation ::= SEQUENCE { + * policyIdentifier CertPolicyId, + * policyQualifiers SEQUENCE SIZE (1..MAX) OF + * PolicyQualifierInfo OPTIONAL } + * + * The public calls for the type: + * + * NSSPKIXPolicyInformation_Decode + * NSSPKIXPolicyInformation_Create + * NSSPKIXPolicyInformation_Destroy + * NSSPKIXPolicyInformation_Encode + * NSSPKIXPolicyInformation_GetPolicyIdentifier + * NSSPKIXPolicyInformation_SetPolicyIdentifier + * NSSPKIXPolicyInformation_GetPolicyQualifierCount + * NSSPKIXPolicyInformation_GetPolicyQualifiers + * NSSPKIXPolicyInformation_SetPolicyQualifiers + * NSSPKIXPolicyInformation_GetPolicyQualifier + * NSSPKIXPolicyInformation_SetPolicyQualifier + * NSSPKIXPolicyInformation_InsertPolicyQualifier + * NSSPKIXPolicyInformation_AppendPolicyQualifier + * NSSPKIXPolicyInformation_RemovePolicyQualifier + * NSSPKIXPolicyInformation_Equal + * NSSPKIXPolicyInformation_Duplicate + * { and accessors by specific policy qualifier ID } + * + */ + +/* + * NSSPKIXPolicyInformation_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyInformation upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation * +NSSPKIXPolicyInformation_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPolicyInformation_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * + * Return value: + * A valid pointer to an NSSPKIXPolicyInformation upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation * +NSSPKIXPolicyInformation_Create +( + NSSArena *arenaOpt, + NSSPKIXCertPolicyId *id, + NSSPKIXPolicyQualifierInfo *pqi1, + ... +); + +/* + * NSSPKIXPolicyInformation_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyInformation_Destroy +( + NSSPKIXPolicyInformation *pi +); + +/* + * NSSPKIXPolicyInformation_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPolicyInformation_Encode +( + NSSPKIXPolicyInformation *pi, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyInformation_GetPolicyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid OID upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +NSSPKIXPolicyInformation_GetPolicyIdentifier +( + NSSPKIXPolicyInformation *pi +); + +/* + * NSSPKIXPolicyInformation_SetPolicyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyInformation_SetPolicyIdentifier +( + NSSPKIXPolicyInformation *pi, + NSSPKIXCertPolicyIdentifier *cpi +); + +/* + * NSSPKIXPolicyInformation_GetPolicyQualifierCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXPolicyInformation_GetPolicyQualifierCount +( + NSSPKIXPolicyInformation *pi +); + +/* + * NSSPKIXPolicyInformation_GetPolicyQualifiers + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXPolicyQualifierInfo pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo ** +NSSPKIXPolicyInformation_GetPolicyQualifiers +( + NSSPKIXPolicyInformation *pi, + NSSPKIXPolicyQualifierInfo *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyInformation_SetPolicyQualifiers + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyInformation_SetPolicyQualifiers +( + NSSPKIXPolicyInformation *pi, + NSSPKIXPolicyQualifierInfo *pqi[], + PRInt32 count +); + +/* + * NSSPKIXPolicyInformation_GetPolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo * +NSSPKIXPolicyInformation_GetPolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyInformation_SetPolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyInformation_SetPolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i, + NSSPKIXPolicyQualifierInfo *pqi +); + +/* + * NSSPKIXPolicyInformation_InsertPolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyInformation_InsertPolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i, + NSSPKIXPolicyQualifierInfo *pqi +); + +/* + * NSSPKIXPolicyInformation_AppendPolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyInformation_AppendPolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i, + NSSPKIXPolicyQualifierInfo *pqi +); + +/* + * NSSPKIXPolicyInformation_RemovePolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyInformation_RemovePolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i +); + +/* + * NSSPKIXPolicyInformation_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXPolicyInformation_Equal +( + NSSPKIXPolicyInformation *pi1, + NSSPKIXPolicyInformation *pi2, + PRStatus *statusOpt +); + +/* + * NSSPKIXPolicyInformation_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyInformation upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation * +NSSPKIXPolicyInformation_Duplicate +( + NSSPKIXPolicyInformation *pi, + NSSArena *arenaOpt +); + +/* + * { and accessors by specific policy qualifier ID } + * + */ + +/* + * PolicyQualifierInfo + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyQualifierInfo ::= SEQUENCE { + * policyQualifierId PolicyQualifierId, + * qualifier ANY DEFINED BY policyQualifierId } + * + * The public calls for the type: + * + * NSSPKIXPolicyQualifierInfo_Decode + * NSSPKIXPolicyQualifierInfo_Create + * NSSPKIXPolicyQualifierInfo_Destroy + * NSSPKIXPolicyQualifierInfo_Encode + * NSSPKIXPolicyQualifierInfo_GetPolicyQualifierID + * NSSPKIXPolicyQualifierInfo_SetPolicyQualifierID + * NSSPKIXPolicyQualifierInfo_GetQualifier + * NSSPKIXPolicyQualifierInfo_SetQualifier + * NSSPKIXPolicyQualifierInfo_Equal + * NSSPKIXPolicyQualifierInfo_Duplicate + * { and accessors by specific qualifier id/type } + * + */ + +/* + * NSSPKIXPolicyQualifierInfo_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo * +NSSPKIXPolicyQualifierInfo_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPolicyQualifierInfo_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_ID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo * +NSSPKIXPolicyQualifierInfo_Create +( + NSSArena *arenaOpt, + NSSPKIXPolicyQualifierId *policyQualifierId, + NSSItem *qualifier +); + +/* + * NSSPKIXPolicyQualifierInfo_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyQualifierInfo_Destroy +( + NSSPKIXPolicyQualifierInfo *pqi +); + +/* + * NSSPKIXPolicyQualifierInfo_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPolicyQualifierInfo_Encode +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyQualifierInfo_GetPolicyQualifierId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierId (an NSSOID) upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierId * +NSSPKIXPolicyQualifierInfo_GetPolicyQualifierId +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyQualifierInfo_SetPolicyQualifierId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyQualifierInfo_SetPolicyQualifierId +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSPKIXPolicyQualifierId *pqid +); + +/* + * NSSPKIXPolicyQualifierInfo_GetQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +NSSPKIXPolicyQualifierInfo_GetQualifier +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyQualifierInfo_SetQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyQualifierInfo_SetQualifier +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSItem *qualifier +); + +/* + * NSSPKIXPolicyQualifierInfo_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXPolicyQualifierInfo_Equal +( + NSSPKIXPolicyQualifierInfo *pqi1, + NSSPKIXPolicyQualifierInfo *pqi2, + PRStatus *statusOpt +); + +/* + * NSSPKIXPolicyQualifierInfo_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo * +NSSPKIXPolicyQualifierInfo_Duplicate +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSArena *arenaOpt +); + +/* + * { and accessors by specific qualifier id/type } + * + */ + +/* + * CPSuri + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CPSuri ::= IA5String + * + * The public calls for this type: + * + * NSSPKIXCPSuri_Decode + * NSSPKIXCPSuri_CreateFromUTF8 + * NSSPKIXCPSuri_Encode + * + */ + +/* + * NSSPKIXCPSuri_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCPSuri upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCPSuri * +NSSPKIXCPSuri_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXCPSuri_CreateFromUTF8 + * + * { basically just enforces the length and charset limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCPSuri upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCPSuri * +NSSPKIXCPSuri_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXCPSuri_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CPS_URI + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXCPSuri_Encode +( + NSSPKIXCPSuri *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * UserNotice + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UserNotice ::= SEQUENCE { + * noticeRef NoticeReference OPTIONAL, + * explicitText DisplayText OPTIONAL} + * + * The public calls for this type: + * + * NSSPKIXUserNotice_Decode + * NSSPKIXUserNotice_Create + * NSSPKIXUserNotice_Destroy + * NSSPKIXUserNotice_Encode + * NSSPKIXUserNotice_HasNoticeRef + * NSSPKIXUserNotice_GetNoticeRef + * NSSPKIXUserNotice_SetNoticeRef + * NSSPKIXUserNotice_RemoveNoticeRef + * NSSPKIXUserNotice_HasExplicitText + * NSSPKIXUserNotice_GetExplicitText + * NSSPKIXUserNotice_SetExplicitText + * NSSPKIXUserNotice_RemoveExplicitText + * NSSPKIXUserNotice_Equal + * NSSPKIXUserNotice_Duplicate + * + */ + + +/* + * NSSPKIXUserNotice_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXUserNotice upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUserNotice * +NSSPKIXUserNotice_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXUserNotice_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * + * Return value: + * A valid pointer to an NSSPKIXUserNotice upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUserNotice * +NSSPKIXUserNotice_Create +( + NSSArena *arenaOpt, + NSSPKIXNoticeReference *noticeRef, + NSSPKIXDisplayText *explicitText +); + +/* + * NSSPKIXUserNotice_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXUserNotice_Destroy +( + NSSPKIXUserNotice *userNotice +); + +/* + * NSSPKIXUserNotice_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXUserNotice_Encode +( + NSSPKIXUserNotice *userNotice, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXUserNotice_HasNoticeRef + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXUserNotice_HasNoticeRef +( + NSSPKIXUserNotice *userNotice, + PRStatus *statusOpt +); + +/* + * NSSPKIXUserNotice_GetNoticeRef + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_NOTICE_REF + * + * Return value: + * A valid pointer to an NSSPKIXNoticeReference upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNoticeReference * +NSSPKIXUserNotice_GetNoticeRef +( + NSSPKIXUserNotice *userNotice, + NSSArena *arenaOpt +); + +/* + * NSSPKIXUserNotice_SetNoticeRef + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXUserNotice_SetNoticeRef +( + NSSPKIXUserNotice *userNotice, + NSSPKIXNoticeReference *noticeRef +); + +/* + * NSSPKIXUserNotice_RemoveNoticeRef + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_HAS_NO_NOTICE_REF + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXUserNotice_RemoveNoticeRef +( + NSSPKIXUserNotice *userNotice +); + +/* + * NSSPKIXUserNotice_HasExplicitText + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_TRUE if it has some + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXUserNotice_HasExplicitText +( + NSSPKIXUserNotice *userNotice, + PRStatus *statusOpt +); + +/* + * NSSPKIXUserNotice_GetExplicitText + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_EXPLICIT_TEXT + * + * Return value: + * A valid pointer to an NSSPKIXDisplayText string upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDisplayText * +NSSPKIXUserNotice_GetExplicitText +( + NSSPKIXUserNotice *userNotice, + NSSArena *arenaOpt +); + +/* + * NSSPKIXUserNotice_SetExplicitText + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXUserNotice_SetExplicitText +( + NSSPKIXUserNotice *userNotice, + NSSPKIXDisplayText *explicitText +); + +/* + * NSSPKIXUserNotice_RemoveExplicitText + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_HAS_NO_EXPLICIT_TEXT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXUserNotice_RemoveExplicitText +( + NSSPKIXUserNotice *userNotice +); + +/* + * NSSPKIXUserNotice_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXUserNotice_Equal +( + NSSPKIXUserNotice *userNotice1, + NSSPKIXUserNotice *userNotice2, + PRStatus *statusOpt +); + +/* + * NSSPKIXUserNotice_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXUserNotice upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUserNotice * +NSSPKIXUserNotice_Duplicate +( + NSSPKIXUserNotice *userNotice, + NSSArena *arenaOpt +); + +/* + * NoticeReference + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NoticeReference ::= SEQUENCE { + * organization DisplayText, + * noticeNumbers SEQUENCE OF INTEGER } + * + * The public calls for this type: + * + * NSSPKIXNoticeReference_Decode + * NSSPKIXNoticeReference_Create + * NSSPKIXNoticeReference_Destroy + * NSSPKIXNoticeReference_Encode + * NSSPKIXNoticeReference_GetOrganization + * NSSPKIXNoticeReference_SetOrganization + * NSSPKIXNoticeReference_GetNoticeNumberCount + * NSSPKIXNoticeReference_GetNoticeNumbers + * NSSPKIXNoticeReference_SetNoticeNumbers + * NSSPKIXNoticeReference_GetNoticeNumber + * NSSPKIXNoticeReference_SetNoticeNumber + * NSSPKIXNoticeReference_InsertNoticeNumber + * NSSPKIXNoticeReference_AppendNoticeNumber + * NSSPKIXNoticeReference_RemoveNoticeNumber + * { maybe number-exists-p gettor? } + * NSSPKIXNoticeReference_Equal + * NSSPKIXNoticeReference_Duplicate + * + */ + +/* + * NSSPKIXNoticeReference_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNoticeReference upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNoticeReference * +NSSPKIXNoticeReference_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXNoticeReference_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * + * Return value: + * A valid pointer to an NSSPKIXNoticeReference upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNoticeReference * +NSSPKIXNoticeReference_Create +( + NSSArena *arenaOpt, + NSSPKIXDisplayText *organization, + PRUint32 noticeCount, + PRInt32 noticeNumber1, + ... +); + +/* + * { fgmr -- or should the call that takes PRInt32 be _CreateFromValues, + * and the _Create call take NSSBER integers? } + */ + +/* + * NSSPKIXNoticeReference_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNoticeReference_Destroy +( + NSSPKIXNoticeReference *nr +); + +/* + * NSSPKIXNoticeReference_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXNoticeReference_Encode +( + NSSPKIXNoticeReference *nr, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXNoticeReference_GetOrganization + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXDisplayText string upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDisplayText * +NSSPKIXNoticeReference_GetOrganization +( + NSSPKIXNoticeReference *nr, + NSSArena *arenaOpt +); + +/* + * NSSPKIXNoticeReference_SetOrganization + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNoticeReference_SetOrganization +( + NSSPKIXNoticeReference *nr, + NSSPKIXDisplayText *organization +); + +/* + * NSSPKIXNoticeReference_GetNoticeNumberCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXNoticeReference_GetNoticeNumberCount +( + NSSPKIXNoticeReference *nr +); + +/* + * NSSPKIXNoticeReference_GetNoticeNumbers + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of PRInt32 values upon success + * NULL upon failure + */ + +NSS_EXTERN PRInt32 * +NSSPKIXNoticeReference_GetNoticeNumbers +( + NSSPKIXNoticeReference *nr, + PRInt32 rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXNoticeReference_SetNoticeNumbers + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNoticeReference_SetNoticeNumbers +( + NSSPKIXNoticeReference *nr, + PRInt32 noticeNumbers[], + PRInt32 count +); + +/* + * NSSPKIXNoticeReference_GetNoticeNumber + * + * -- fgmr comments -- + * Because there is no natural "invalid" notice number value, we must + * pass the number by reference, and return an explicit status value. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_POINTER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNoticeReference_GetNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 i, + PRInt32 *noticeNumberP +); + +/* + * NSSPKIXNoticeReference_SetNoticeNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNoticeReference_SetNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 i, + PRInt32 noticeNumber +); + +/* + * NSSPKIXNoticeReference_InsertNoticeNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNoticeReference_InsertNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 i, + PRInt32 noticeNumber +); + +/* + * NSSPKIXNoticeReference_AppendNoticeNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNoticeReference_AppendNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 noticeNumber +); + +/* + * NSSPKIXNoticeReference_RemoveNoticeNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNoticeReference_RemoveNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 i +); + +/* + * { maybe number-exists-p gettor? } + */ + +/* + * NSSPKIXNoticeReference_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXNoticeReference_Equal +( + NSSPKIXNoticeReference *nr1, + NSSPKIXNoticeReference *nr2, + PRStatus *statusOpt +); + +/* + * NSSPKIXNoticeReference_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNoticeReference upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNoticeReference * +NSSPKIXNoticeReference_Duplicate +( + NSSPKIXNoticeReference *nr, + NSSArena *arenaOpt +); + +/* + * DisplayText + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DisplayText ::= CHOICE { + * visibleString VisibleString (SIZE (1..200)), + * bmpString BMPString (SIZE (1..200)), + * utf8String UTF8String (SIZE (1..200)) } + * + * The public calls for this type: + * + * NSSPKIXDisplayText_Decode + * NSSPKIXDisplayText_CreateFromUTF8 + * NSSPKIXDisplayText_Encode + * + */ + +/* + * NSSPKIXDisplayText_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDisplayText upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDisplayText * +NSSPKIXDisplayText_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXDisplayText_CreateFromUTF8 + * + * { basically just enforces the length and charset limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDisplayText upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDisplayText * +NSSPKIXDisplayText_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXDisplayText_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXDisplayText_Encode +( + NSSPKIXDisplayText *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PolicyMappings + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE { + * issuerDomainPolicy CertPolicyId, + * subjectDomainPolicy CertPolicyId } + * + * The public calls for this type: + * + * NSSPKIXPolicyMappings_Decode + * NSSPKIXPolicyMappings_Create + * NSSPKIXPolicyMappings_Destroy + * NSSPKIXPolicyMappings_Encode + * NSSPKIXPolicyMappings_GetPolicyMappingCount + * NSSPKIXPolicyMappings_GetPolicyMappings + * NSSPKIXPolicyMappings_SetPolicyMappings + * NSSPKIXPolicyMappings_GetPolicyMapping + * NSSPKIXPolicyMappings_SetPolicyMapping + * NSSPKIXPolicyMappings_InsertPolicyMapping + * NSSPKIXPolicyMappings_AppendPolicyMapping + * NSSPKIXPolicyMappings_RemovePolicyMapping + * NSSPKIXPolicyMappings_FindPolicyMapping + * NSSPKIXPolicyMappings_Equal + * NSSPKIXPolicyMappings_Duplicate + * NSSPKIXPolicyMappings_IssuerDomainPolicyExists + * NSSPKIXPolicyMappings_SubjectDomainPolicyExists + * NSSPKIXPolicyMappings_FindIssuerDomainPolicy + * NSSPKIXPolicyMappings_FindSubjectDomainPolicy + * NSSPKIXPolicyMappings_MapIssuerToSubject + * NSSPKIXPolicyMappings_MapSubjectToIssuer + * { find's and map's: what if there's more than one? } + * + */ + +/* + * NSSPKIXPolicyMappings_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyMappings upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyMappings * +NSSPKIXPolicyMappings_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPolicyMappings_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * + * Return value: + * A valid pointer to an NSSPKIXPolicyMappings upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyMappings * +NSSPKIXPolicyMappings_Decode +( + NSSArena *arenaOpt, + NSSPKIXpolicyMapping *policyMapping1, + ... +); + +/* + * NSSPKIXPolicyMappings_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyMappings_Destroy +( + NSSPKIXPolicyMappings *policyMappings +); + +/* + * NSSPKIXPolicyMappings_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_DATA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPolicyMappings_Encode +( + NSSPKIXPolicyMappings *policyMappings, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyMappings_GetPolicyMappingCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXPolicyMappings_GetPolicyMappingCount +( + NSSPKIXPolicyMappings *policyMappings +); + +/* + * NSSPKIXPolicyMappings_GetPolicyMappings + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXpolicyMapping pointers upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping ** +NSSPKIXPolicyMappings_GetPolicyMappings +( + NSSPKIXPolicyMappings *policyMappings + NSSPKIXpolicyMapping *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyMappings_SetPolicyMappings + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyMappings_SetPolicyMappings +( + NSSPKIXPolicyMappings *policyMappings + NSSPKIXpolicyMapping *policyMapping[] + PRInt32 count +); + +/* + * NSSPKIXPolicyMappings_GetPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXpolicyMapping upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping * +NSSPKIXPolicyMappings_GetPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyMappings_SetPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyMappings_SetPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + PRInt32 i, + NSSPKIXpolicyMapping *policyMapping +); + +/* + * NSSPKIXPolicyMappings_InsertPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyMappings_InsertPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + PRInt32 i, + NSSPKIXpolicyMapping *policyMapping +); + +/* + * NSSPKIXPolicyMappings_AppendPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyMappings_AppendPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + NSSPKIXpolicyMapping *policyMapping +); + +/* + * NSSPKIXPolicyMappings_RemovePolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyMappings_RemovePolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + PRInt32 i +); + +/* + * NSSPKIXPolicyMappings_FindPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXPolicyMappings_FindPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + NSSPKIXpolicyMapping *policyMapping +); + +/* + * NSSPKIXPolicyMappings_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXPolicyMappings_Equal +( + NSSPKIXPolicyMappings *policyMappings1, + NSSPKIXpolicyMappings *policyMappings2, + PRStatus *statusOpt +); + +/* + * NSSPKIXPolicyMappings_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXPolicyMappings upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyMappings * +NSSPKIXPolicyMappings_Duplicate +( + NSSPKIXPolicyMappings *policyMappings, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyMappings_IssuerDomainPolicyExists + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * + * Return value: + * PR_TRUE if the specified domain policy OID exists + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPolicyMappings_IssuerDomainPolicyExists +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy, + PRStatus *statusOpt +); + +/* + * NSSPKIXPolicyMappings_SubjectDomainPolicyExists + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * + * Return value: + * PR_TRUE if the specified domain policy OID exists + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPolicyMappings_SubjectDomainPolicyExists +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *subjectDomainPolicy, + PRStatus *statusOpt +); + +/* + * NSSPKIXPolicyMappings_FindIssuerDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXPolicyMappings_FindIssuerDomainPolicy +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * NSSPKIXPolicyMappings_FindSubjectDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXPolicyMappings_FindSubjectDomainPolicy +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * NSSPKIXPolicyMappings_MapIssuerToSubject + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NOT_FOUND + * + * Return value: + * A valid pointer to an NSSPKIXCertPolicyId upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +NSSPKIXPolicyMappings_MapIssuerToSubject +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * NSSPKIXPolicyMappings_MapSubjectToIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NOT_FOUND + * + * Return value: + * A valid pointer to an NSSPKIXCertPolicyId upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +NSSPKIXPolicyMappings_MapSubjectToIssuer +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * policyMapping + * + * Helper structure for PolicyMappings + * + * SEQUENCE { + * issuerDomainPolicy CertPolicyId, + * subjectDomainPolicy CertPolicyId } + * + * The public calls for this type: + * + * NSSPKIXpolicyMapping_Decode + * NSSPKIXpolicyMapping_Create + * NSSPKIXpolicyMapping_Destroy + * NSSPKIXpolicyMapping_Encode + * NSSPKIXpolicyMapping_GetIssuerDomainPolicy + * NSSPKIXpolicyMapping_SetIssuerDomainPolicy + * NSSPKIXpolicyMapping_GetSubjectDomainPolicy + * NSSPKIXpolicyMapping_SetSubjectDomainPolicy + * NSSPKIXpolicyMapping_Equal + * NSSPKIXpolicyMapping_Duplicate + * + */ + +/* + * NSSPKIXpolicyMapping_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXpolicyMapping upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping * +NSSPKIXpolicyMapping_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXpolicyMapping_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * + * Return value: + * A valid pointer to an NSSPKIXpolicyMapping upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping * +NSSPKIXpolicyMapping_Create +( + NSSArena *arenaOpt, + NSSPKIXCertPolicyId *issuerDomainPolicy, + NSSPKIXCertPolicyId *subjectDomainPolicy +); + +/* + * NSSPKIXpolicyMapping_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXpolicyMapping_Destroy +( + NSSPKIXpolicyMapping *policyMapping +); + +/* + * NSSPKIXpolicyMapping_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_DATA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXpolicyMapping_Encode +( + NSSPKIXpolicyMapping *policyMapping, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXpolicyMapping_GetIssuerDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertPolicyId OID upon success + * NULL upon faliure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +NSSPKIXpolicyMapping_GetIssuerDomainPolicy +( + NSSPKIXpolicyMapping *policyMapping +); + +/* + * NSSPKIXpolicyMapping_SetIssuerDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXpolicyMapping_SetIssuerDomainPolicy +( + NSSPKIXpolicyMapping *policyMapping, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * NSSPKIXpolicyMapping_GetSubjectDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertPolicyId OID upon success + * NULL upon faliure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +NSSPKIXpolicyMapping_GetSubjectDomainPolicy +( + NSSPKIXpolicyMapping *policyMapping +); + +/* + * NSSPKIXpolicyMapping_SetSubjectDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXpolicyMapping_SetSubjectDomainPolicy +( + NSSPKIXpolicyMapping *policyMapping, + NSSPKIXCertPolicyId *subjectDomainPolicy +); + +/* + * NSSPKIXpolicyMapping_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXpolicyMapping_Equal +( + NSSPKIXpolicyMapping *policyMapping1, + NSSPKIXpolicyMapping *policyMapping2, + PRStatus *statusOpt +); + +/* + * NSSPKIXpolicyMapping_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXpolicyMapping upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping * +NSSPKIXpolicyMapping_Duplicate +( + NSSPKIXpolicyMapping *policyMapping, + NSSArena *arenaOpt +); + +/* + * GeneralName + * + * This structure contains a union of the possible general names, + * of which there are several. + * + * From RFC 2459: + * + * GeneralName ::= CHOICE { + * otherName [0] AnotherName, + * rfc822Name [1] IA5String, + * dNSName [2] IA5String, + * x400Address [3] ORAddress, + * directoryName [4] Name, + * ediPartyName [5] EDIPartyName, + * uniformResourceIdentifier [6] IA5String, + * iPAddress [7] OCTET STRING, + * registeredID [8] OBJECT IDENTIFIER } + * + * The public calls for this type: + * + * NSSPKIXGeneralName_Decode + * NSSPKIXGeneralName_CreateFromUTF8 + * NSSPKIXGeneralName_Create + * NSSPKIXGeneralName_CreateFromOtherName + * NSSPKIXGeneralName_CreateFromRfc822Name + * NSSPKIXGeneralName_CreateFromDNSName + * NSSPKIXGeneralName_CreateFromX400Address + * NSSPKIXGeneralName_CreateFromDirectoryName + * NSSPKIXGeneralName_CreateFromEDIPartyName + * NSSPKIXGeneralName_CreateFromUniformResourceIdentifier + * NSSPKIXGeneralName_CreateFromIPAddress + * NSSPKIXGeneralName_CreateFromRegisteredID + * NSSPKIXGeneralName_Destroy + * NSSPKIXGeneralName_Encode + * NSSPKIXGeneralName_GetUTF8Encoding + * NSSPKIXGeneralName_GetChoice + * NSSPKIXGeneralName_GetOtherName + * NSSPKIXGeneralName_GetRfc822Name + * NSSPKIXGeneralName_GetDNSName + * NSSPKIXGeneralName_GetX400Address + * NSSPKIXGeneralName_GetDirectoryName + * NSSPKIXGeneralName_GetEDIPartyName + * NSSPKIXGeneralName_GetUniformResourceIdentifier + * NSSPKIXGeneralName_GetIPAddress + * NSSPKIXGeneralName_GetRegisteredID + * NSSPKIXGeneralName_GetSpecifiedChoice + * NSSPKIXGeneralName_Equal + * NSSPKIXGeneralName_Duplicate + * (in pki1 I had specific attribute value gettors here too) + * + */ + +/* + * NSSPKIXGeneralName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXGeneralName_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * NSSPKIXGeneralName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME_CHOICE + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_INVALID_PKIX_IA5_STRING + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_INVALID_OID + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_Create +( + NSSArena *arenaOpt, + NSSPKIXGeneralNameChoice choice, + void *content +); + +/* + * NSSPKIXGeneralName_CreateFromOtherName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromOtherName +( + NSSArena *arenaOpt, + NSSPKIXAnotherName *otherName +); + +/* + * NSSPKIXGeneralName_CreateFromRfc822Name + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_IA5_STRING + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromRfc822Name +( + NSSArena *arenaOpt, + NSSUTF8 *rfc822Name +); + +/* + * NSSPKIXGeneralName_CreateFromDNSName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_IA5_STRING + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromDNSName +( + NSSArena *arenaOpt, + NSSUTF8 *dNSName +); + +/* + * NSSPKIXGeneralName_CreateFromX400Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromX400Address +( + NSSArena *arenaOpt, + NSSPKIXORAddress *x400Address +); + +/* + * NSSPKIXGeneralName_CreateFromDirectoryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromDirectoryName +( + NSSArena *arenaOpt, + NSSPKIXName *directoryName +); + +/* + * NSSPKIXGeneralName_CreateFromEDIPartyName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromEDIPartyName +( + NSSArena *arenaOpt, + NSSPKIXEDIPartyName *ediPartyname +); + +/* + * NSSPKIXGeneralName_CreateFromUniformResourceIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_IA5_STRING + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromUniformResourceIdentifier +( + NSSArena *arenaOpt, + NSSUTF8 *uniformResourceIdentifier +); + +/* + * NSSPKIXGeneralName_CreateFromIPAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromIPAddress +( + NSSArena *arenaOpt, + NSSItem *iPAddress +); + +/* + * NSSPKIXGeneralName_CreateFromRegisteredID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_CreateFromRegisteredID +( + NSSArena *arenaOpt, + NSSOID *registeredID +); + +/* + * NSSPKIXGeneralName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralName_Destroy +( + NSSPKIXGeneralName *generalName +); + +/* + * NSSPKIXGeneralName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXGeneralName_Encode +( + NSSPKIXGeneralName *generalName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXGeneralName_GetUTF8Encoding +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * A valid NSSPKIXGeneralNameChoice value upon success + * NSSPKIXGeneralNameChoice_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNameChoice +NSSPKIXGeneralName_GetChoice +( + NSSPKIXGeneralName *generalName +); + +/* + * NSSPKIXGeneralName_GetOtherName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAnotherName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAnotherName * +NSSPKIXGeneralName_GetOtherName +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetRfc822Name + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXGeneralName_GetRfc822Name +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetDNSName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXGeneralName_GetDNSName +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetX400Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXORAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXORAddress * +NSSPKIXGeneralName_GetX400Address +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetDirectoryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +NSSPKIXGeneralName_GetDirectoryName +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetEDIPartyName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXEDIPartyName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXEDIPartyName * +NSSPKIXGeneralName_GetEDIPartyName +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetUniformResourceIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXGeneralName_GetUniformResourceIdentifier +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetIPAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +NSSPKIXGeneralName_GetIPAddress +( + NSSPKIXGeneralName *generalName, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_GetRegisteredID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSOID upon success + * NULL upon failure + */ + +NSS_EXTERN NSSOID * +NSSPKIXGeneralName_GetRegisteredID +( + NSSPKIXGeneralName *generalName +); + +/* + * NSSPKIXGeneralName_GetSpecifiedChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer upon success + * NULL upon failure + */ + +NSS_EXTERN void * +NSSPKIXGeneralName_GetSpecifiedChoice +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXGeneralName_Equal +( + NSSPKIXGeneralName *generalName1, + NSSPKIXGeneralName *generalName2, + PRStatus *statusOpt +); + +/* + * NSSPKIXGeneralName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralName_Duplicate +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * (in pki1 I had specific attribute value gettors here too) + * + */ + +/* + * GeneralNames + * + * This structure contains a sequence of GeneralName objects. + * + * From RFC 2459: + * + * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName + * + * The public calls for this type: + * + * NSSPKIXGeneralNames_Decode + * NSSPKIXGeneralNames_Create + * NSSPKIXGeneralNames_Destroy + * NSSPKIXGeneralNames_Encode + * NSSPKIXGeneralNames_GetGeneralNameCount + * NSSPKIXGeneralNames_GetGeneralNames + * NSSPKIXGeneralNames_SetGeneralNames + * NSSPKIXGeneralNames_GetGeneralName + * NSSPKIXGeneralNames_SetGeneralName + * NSSPKIXGeneralNames_InsertGeneralName + * NSSPKIXGeneralNames_AppendGeneralName + * NSSPKIXGeneralNames_RemoveGeneralName + * NSSPKIXGeneralNames_FindGeneralName + * NSSPKIXGeneralNames_Equal + * NSSPKIXGeneralNames_Duplicate + * + */ + +/* + * NSSPKIXGeneralNames_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +NSSPKIXGeneralNames_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXGeneralNames_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +NSSPKIXGeneralNames_Create +( + NSSArena *arenaOpt, + NSSPKIXGeneralName *generalName1, + ... +); + +/* + * NSSPKIXGeneralNames_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralNames_Destroy +( + NSSPKIXGeneralNames *generalNames +); + +/* + * NSSPKIXGeneralNames_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXGeneralNames_Encode +( + NSSPKIXGeneralNames *generalNames, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralNames_GetGeneralNameCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXGeneralNames_GetGeneralNameCount +( + NSSPKIXGeneralNames *generalNames +); + +/* + * NSSPKIXGeneralNames_GetGeneralNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXGeneralName pointers upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName ** +NSSPKIXGeneralNames_GetGeneralNames +( + NSSPKIXGeneralNames *generalNames, + NSSPKIXGeneralName *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralNames_SetGeneralNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralNames_SetGeneralNames +( + NSSPKIXGeneralNames *generalNames, + NSSPKIXGeneralName *generalName[], + PRInt32 count +); + +/* + * NSSPKIXGeneralNames_GetGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralNames_GetGeneralName +( + NSSPKIXGeneralNames *generalNames, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralNames_SetGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralNames_SetGeneralName +( + NSSPKIXGeneralNames *generalNames, + PRInt32 i, + NSSPKIXGeneralName *generalName +); + +/* + * NSSPKIXGeneralNames_InsertGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralNames_InsertGeneralName +( + NSSPKIXGeneralNames *generalNames, + PRInt32 i, + NSSPKIXGeneralName *generalName +); + +/* + * NSSPKIXGeneralNames_AppendGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralNames_AppendGeneralName +( + NSSPKIXGeneralNames *generalNames, + NSSPKIXGeneralName *generalName +); + +/* + * NSSPKIXGeneralNames_RemoveGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralNames_RemoveGeneralName +( + NSSPKIXGeneralNames *generalNames, + PRInt32 i +); + +/* + * NSSPKIXGeneralNames_FindGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXGeneralNames_FindGeneralName +( + NSSPKIXGeneralNames *generalNames, + NSSPKIXGeneralName *generalName +); + +/* + * NSSPKIXGeneralNames_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXGeneralNames_Equal +( + NSSPKIXGeneralNames *generalNames1, + NSSPKIXGeneralNames *generalNames2, + PRStatus *statusOpt +); + +/* + * NSSPKIXGeneralNames_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +NSSPKIXGeneralNames_Duplicate +( + NSSPKIXGeneralNames *generalNames, + NSSArena *arenaOpt +); + +/* + * AnotherName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AnotherName ::= SEQUENCE { + * type-id OBJECT IDENTIFIER, + * value [0] EXPLICIT ANY DEFINED BY type-id } + * + * The public calls for this type: + * + * NSSPKIXAnotherName_Decode + * NSSPKIXAnotherName_Create + * NSSPKIXAnotherName_Destroy + * NSSPKIXAnotherName_Encode + * NSSPKIXAnotherName_GetTypeId + * NSSPKIXAnotherName_SetTypeId + * NSSPKIXAnotherName_GetValue + * NSSPKIXAnotherName_SetValue + * NSSPKIXAnotherName_Equal + * NSSPKIXAnotherName_Duplicate + * + */ + +/* + * NSSPKIXAnotherName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAnotherName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAnotherName * +NSSPKIXAnotherName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXAnotherName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAnotherName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAnotherName * +NSSPKIXAnotherName_Create +( + NSSArena *arenaOpt, + NSSOID *typeId, + NSSItem *value +); + +/* + * NSSPKIXAnotherName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAnotherName_Destroy +( + NSSPKIXAnotherName *anotherName +); + +/* + * NSSPKIXAnotherName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXAnotherName_Encode +( + NSSPKIXAnotherName *anotherName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAnotherName_GetTypeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSOID upon success + * NULL upon failure + */ + +NSS_EXTERN NSSOID * +NSSPKIXAnotherName_GetTypeId +( + NSSPKIXAnotherName *anotherName +); + +/* + * NSSPKIXAnotherName_SetTypeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_INVALID_OID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAnotherName_SetTypeId +( + NSSPKIXAnotherName *anotherName, + NSSOID *typeId +); + +/* + * NSSPKIXAnotherName_GetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +NSSPKIXAnotherName_GetValue +( + NSSPKIXAnotherName *anotherName, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAnotherName_SetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAnotherName_SetValue +( + NSSPKIXAnotherName *anotherName, + NSSItem *value +); + +/* + * NSSPKIXAnotherName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXAnotherName_Equal +( + NSSPKIXAnotherName *anotherName1, + NSSPKIXAnotherName *anotherName2, + PRStatus *statusOpt +); + +/* + * NSSPKIXAnotherName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAnotherName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAnotherName * +NSSPKIXAnotherName_Duplicate +( + NSSPKIXAnotherName *anotherName, + NSSArena *arenaOpt +); + +/* + * EDIPartyName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * + * EDIPartyName ::= SEQUENCE { + * nameAssigner [0] DirectoryString OPTIONAL, + * partyName [1] DirectoryString } + * + * The public calls for this type: + * + * NSSPKIXEDIPartyName_Decode + * NSSPKIXEDIPartyName_Create + * NSSPKIXEDIPartyName_Destroy + * NSSPKIXEDIPartyName_Encode + * NSSPKIXEDIPartyName_HasNameAssigner + * NSSPKIXEDIPartyName_GetNameAssigner + * NSSPKIXEDIPartyName_SetNameAssigner + * NSSPKIXEDIPartyName_RemoveNameAssigner + * NSSPKIXEDIPartyName_GetPartyName + * NSSPKIXEDIPartyName_SetPartyName + * NSSPKIXEDIPartyName_Equal + * NSSPKIXEDIPartyName_Duplicate + * + */ + +/* + * NSSPKIXEDIPartyName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXEDIPartyName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXEDIPartyName * +NSSPKIXEDIPartyName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXEDIPartyName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXEDIPartyName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXEDIPartyName * +NSSPKIXEDIPartyName_Create +( + NSSArena *arenaOpt, + NSSUTF8 *nameAssignerOpt, + NSSUTF8 *partyName +); + +/* + * NSSPKIXEDIPartyName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXEDIPartyName_Destroy +( + NSSPKIXEDIPartyName *ediPartyName +); + +/* + * NSSPKIXEDIPartyName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXEDIPartyName_Encode +( + NSSPKIXEDIPartyName *ediPartyName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXEDIPartyName_HasNameAssigner + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXEDIPartyName_HasNameAssigner +( + NSSPKIXEDIPartyName *ediPartyName +); + +/* + * NSSPKIXEDIPartyName_GetNameAssigner + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_NAME_ASSIGNER + * + * Return value: + * A valid pointer to an NSSUTF8 string upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXEDIPartyName_GetNameAssigner +( + NSSPKIXEDIPartyName *ediPartyName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXEDIPartyName_SetNameAssigner + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXEDIPartyName_SetNameAssigner +( + NSSPKIXEDIPartyName *ediPartyName, + NSSUTF8 *nameAssigner +); + +/* + * NSSPKIXEDIPartyName_RemoveNameAssigner + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_HAS_NO_NAME_ASSIGNER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXEDIPartyName_RemoveNameAssigner +( + NSSPKIXEDIPartyName *ediPartyName +); + +/* + * NSSPKIXEDIPartyName_GetPartyName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 string upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +NSSPKIXEDIPartyName_GetPartyName +( + NSSPKIXEDIPartyName *ediPartyName, + NSSArena *arenaOpt +); + +/* + * NSSPKIXEDIPartyName_SetPartyName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXEDIPartyName_SetPartyName +( + NSSPKIXEDIPartyName *ediPartyName, + NSSUTF8 *partyName +); + +/* + * NSSPKIXEDIPartyName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXEDIPartyName_Equal +( + NSSPKIXEDIPartyName *ediPartyName1, + NSSPKIXEDIPartyName *ediPartyName2, + PRStatus *statusOpt +); + +/* + * NSSPKIXEDIPartyName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXEDIPartyName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXEDIPartyName * +NSSPKIXEDIPartyName_Duplicate +( + NSSPKIXEDIPartyName *ediPartyName, + NSSArena *arenaOpt +); + +/* + * SubjectDirectoryAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute + * + * The public calls for this type: + * + * NSSPKIXSubjectDirectoryAttributes_Decode + * NSSPKIXSubjectDirectoryAttributes_Create + * NSSPKIXSubjectDirectoryAttributes_Destroy + * NSSPKIXSubjectDirectoryAttributes_Encode + * NSSPKIXSubjectDirectoryAttributes_GetAttributeCount + * NSSPKIXSubjectDirectoryAttributes_GetAttributes + * NSSPKIXSubjectDirectoryAttributes_SetAttributes + * NSSPKIXSubjectDirectoryAttributes_GetAttribute + * NSSPKIXSubjectDirectoryAttributes_SetAttribute + * NSSPKIXSubjectDirectoryAttributes_InsertAttribute + * NSSPKIXSubjectDirectoryAttributes_AppendAttribute + * NSSPKIXSubjectDirectoryAttributes_RemoveAttribute + * NSSPKIXSubjectDirectoryAttributes_FindAttribute + * NSSPKIXSubjectDirectoryAttributes_Equal + * NSSPKIXSubjectDirectoryAttributes_Duplicate + * + */ + +/* + * NSSPKIXSubjectDirectoryAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXSubjectDirectoryAttributes upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectDirectoryAttributes * +NSSPKIXSubjectDirectoryAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXSubjectDirectoryAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXSubjectDirectoryAttributes upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectDirectoryAttributes * +NSSPKIXSubjectDirectoryAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXAttribute *attribute1, + ... +); + +/* + * NSSPKIXSubjectDirectoryAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectDirectoryAttributes_Destroy +( + NSSPKIXSubjectDirectoryAttributes *sda +); + +/* + * NSSPKIXSubjectDirectoryAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXSubjectDirectoryAttributes_Encode +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXSubjectDirectoryAttributes_GetAttributeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXSubjectDirectoryAttributes_GetAttributeCount +( + NSSPKIXSubjectDirectoryAttributes *sda +); + +/* + * NSSPKIXSubjectDirectoryAttributes_GetAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXAttribute pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttribute ** +NSSPKIXSubjectDirectoryAttributes_GetAttributes +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSPKIXAttribute *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXSubjectDirectoryAttributes_SetAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectDirectoryAttributes_SetAttributes +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSAttribute *attributes[], + PRInt32 count +); + +/* + * NSSPKIXSubjectDirectoryAttributes_GetAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon error + */ + +NSS_EXTERN NSSPKIXAttribute * +NSSPKIXSubjectDirectoryAttributes_GetAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXSubjectDirectoryAttributes_SetAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectDirectoryAttributes_SetAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + PRInt32 i, + NSSPKIXAttribute *attribute +); + +/* + * NSSPKIXSubjectDirectoryAttributes_InsertAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectDirectoryAttributes_InsertAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + PRInt32 i, + NSSPKIXAttribute *attribute +); + +/* + * NSSPKIXSubjectDirectoryAttributes_AppendAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectDirectoryAttributes_AppendAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSPKIXAttribute *attribute +); + +/* + * NSSPKIXSubjectDirectoryAttributes_RemoveAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXSubjectDirectoryAttributes_RemoveAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + PRInt32 i +); + +/* + * NSSPKIXSubjectDirectoryAttributes_FindAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_ATTRIBUTE + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXSubjectDirectoryAttributes_FindAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSPKIXAttribute *attribute +); + +/* + * NSSPKIXSubjectDirectoryAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXSubjectDirectoryAttributes_Equal +( + NSSPKIXSubjectDirectoryAttributes *sda1, + NSSPKIXSubjectDirectoryAttributes *sda2, + PRStatus *statusOpt +); + +/* + * NSSPKIXSubjectDirectoryAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXSubjectDirectoryAttributes upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectDirectoryAttributes * +NSSPKIXSubjectDirectoryAttributes_Duplicate +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSArena *arenaOpt +); + +/* + * BasicConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BasicConstraints ::= SEQUENCE { + * cA BOOLEAN DEFAULT FALSE, + * pathLenConstraint INTEGER (0..MAX) OPTIONAL } + * + * The public calls for this type: + * + * NSSPKIXBasicConstraints_Decode + * NSSPKIXBasicConstraints_Create + * NSSPKIXBasicConstraints_Destroy + * NSSPKIXBasicConstraints_Encode + * NSSPKIXBasicConstraints_GetCA + * NSSPKIXBasicConstraints_SetCA + * NSSPKIXBasicConstraints_HasPathLenConstraint + * NSSPKIXBasicConstraints_GetPathLenConstraint + * NSSPKIXBasicConstraints_SetPathLenConstraint + * NSSPKIXBasicConstraints_RemovePathLenConstraint + * NSSPKIXBasicConstraints_Equal + * NSSPKIXBasicConstraints_Duplicate + * NSSPKIXBasicConstraints_CompareToPathLenConstraint + * + */ + +/* + * NSSPKIXBasicConstraints_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBasicConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBasicConstraints * +NSSPKIXBasicConstraints_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXBasicConstraints_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * A valid pointer to an NSSPKIXBasicConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBasicConstraints * +NSSPKIXBasicConstraints_Create +( + NSSArena *arenaOpt, + PRBool ca, + PRInt32 pathLenConstraint +); + +/* + * NSSPKIXBasicConstraints_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBasicConstraints_Destroy +( + NSSPKIXBasicConstraints *basicConstraints +); + +/* + * NSSPKIXBasicConstraints_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXBasicConstraints_Encode +( + NSSPKIXBasicConstraints *basicConstraints, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBasicConstraints_GetCA + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_TRUE if the CA bit is true + * PR_FALSE if it isn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBasicConstraints_GetCA +( + NSSPKIXBasicConstraints *basicConstraints, + PRStatus *statusOpt +); + +/* + * NSSPKIXBasicConstraints_SetCA + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBasicConstraints_SetCA +( + NSSPKIXBasicConstraints *basicConstraints, + PRBool ca +); + +/* + * NSSPKIXBasicConstraints_HasPathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXBasicConstraints_HasPathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints, + PRStatus *statusOpt +); + +/* + * NSSPKIXBasicConstraints_GetPathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_HAS_NO_PATH_LEN_CONSTRAINT + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXBasicConstraints_GetPathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints +); + +/* + * NSSPKIXBasicConstraints_SetPathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBasicConstraints_SetPathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints, + PRInt32 pathLenConstraint +); + +/* + * NSSPKIXBasicConstraints_RemovePathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_HAS_NO_PATH_LEN_CONSTRAINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXBasicConstraints_RemovePathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints +); + +/* + * NSSPKIXBasicConstraints_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXBasicConstraints_Equal +( + NSSPKIXBasicConstraints *basicConstraints1, + NSSPKIXBasicConstraints *basicConstraints2, + PRStatus *statusOpt +); + +/* + * NSSPKIXBasicConstraints_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXBasicConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBasicConstraints * +NSSPKIXBasicConstraints_Duplicate +( + NSSPKIXBasicConstraints *basicConstraints, + NSSArena *arenaOpt +); + +/* + * NSSPKIXBasicConstraints_CompareToPathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_HAS_NO_PATH_LEN_CONSTRAINT + * + * Return value: + * 1 if the specified value is greater than the pathLenConstraint + * 0 if the specified value equals the pathLenConstraint + * -1 if the specified value is less than the pathLenConstraint + * -2 upon error + */ + +NSS_EXTERN PRInt32 +NSSPKIXBasicConstraints_CompareToPathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints, + PRInt32 value +); + +/* + * NameConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NameConstraints ::= SEQUENCE { + * permittedSubtrees [0] GeneralSubtrees OPTIONAL, + * excludedSubtrees [1] GeneralSubtrees OPTIONAL } + * + * The public calls for this type: + * + * NSSPKIXNameConstraints_Decode + * NSSPKIXNameConstraints_Create + * NSSPKIXNameConstraints_Destroy + * NSSPKIXNameConstraints_Encode + * NSSPKIXNameConstraints_HasPermittedSubtrees + * NSSPKIXNameConstraints_GetPermittedSubtrees + * NSSPKIXNameConstraints_SetPermittedSubtrees + * NSSPKIXNameConstraints_RemovePermittedSubtrees + * NSSPKIXNameConstraints_HasExcludedSubtrees + * NSSPKIXNameConstraints_GetExcludedSubtrees + * NSSPKIXNameConstraints_SetExcludedSubtrees + * NSSPKIXNameConstraints_RemoveExcludedSubtrees + * NSSPKIXNameConstraints_Equal + * NSSPKIXNameConstraints_Duplicate + * { and the comparator functions } + * + */ + +/* + * NSSPKIXNameConstraints_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNameConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNameConstraints * +NSSPKIXNameConstraints_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXNameConstraints_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * + * Return value: + * A valid pointer to an NSSPKIXNameConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNameConstraints * +NSSPKIXNameConstraints_Create +( + NSSArena *arenaOpt, + NSSPKIXGeneralSubtrees *permittedSubtrees, + NSSPKIXGeneralSubtrees *excludedSubtrees +); + +/* + * NSSPKIXNameConstraints_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNameConstraints_Destroy +( + NSSPKIXNameConstraints *nameConstraints +); + +/* + * NSSPKIXNameConstraints_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXNameConstraints_Encode +( + NSSPKIXNameConstraints *nameConstraints, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXNameConstraints_HasPermittedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXNameConstraints_HasPermittedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + PRStatus *statusOpt +); + +/* + * NSSPKIXNameConstraints_GetPermittedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_HAS_NO_PERMITTED_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +NSSPKIXNameConstraints_GetPermittedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + NSSArena *arenaOpt +); + +/* + * NSSPKIXNameConstraints_SetPermittedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNameConstraints_SetPermittedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + NSSPKIXGeneralSubtrees *permittedSubtrees +); + +/* + * NSSPKIXNameConstraints_RemovePermittedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_HAS_NO_PERMITTED_SUBTREES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNameConstraints_RemovePermittedSubtrees +( + NSSPKIXNameConstraints *nameConstraints +); + +/* + * NSSPKIXNameConstraints_HasExcludedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXNameConstraints_HasExcludedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + PRStatus *statusOpt +); + +/* + * NSSPKIXNameConstraints_GetExcludedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_HAS_NO_EXCLUDED_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +NSSPKIXNameConstraints_GetExcludedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + NSSArena *arenaOpt +); + +/* + * NSSPKIXNameConstraints_SetExcludedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNameConstraints_SetExcludedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + NSSPKIXGeneralSubtrees *excludedSubtrees +); + +/* + * NSSPKIXNameConstraints_RemoveExcludedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_HAS_NO_EXCLUDED_SUBTREES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXNameConstraints_RemoveExcludedSubtrees +( + NSSPKIXNameConstraints *nameConstraints +); + +/* + * NSSPKIXNameConstraints_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXNameConstraints_Equal +( + NSSPKIXNameConstraints *nameConstraints1, + NSSPKIXNameConstraints *nameConstraints2, + PRStatus *statusOpt +); + +/* + * NSSPKIXNameConstraints_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXNameConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNameConstraints * +NSSPKIXNameConstraints_Duplicate +( + NSSPKIXNameConstraints *nameConstraints, + NSSArena *arenaOpt +); + +/* + * { and the comparator functions } + * + */ + +/* + * GeneralSubtrees + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree + * + * The public calls for this type: + * + * NSSPKIXGeneralSubtrees_Decode + * NSSPKIXGeneralSubtrees_Create + * NSSPKIXGeneralSubtrees_Destroy + * NSSPKIXGeneralSubtrees_Encode + * NSSPKIXGeneralSubtrees_GetGeneralSubtreeCount + * NSSPKIXGeneralSubtrees_GetGeneralSubtrees + * NSSPKIXGeneralSubtrees_SetGeneralSubtrees + * NSSPKIXGeneralSubtrees_GetGeneralSubtree + * NSSPKIXGeneralSubtrees_SetGeneralSubtree + * NSSPKIXGeneralSubtrees_InsertGeneralSubtree + * NSSPKIXGeneralSubtrees_AppendGeneralSubtree + * NSSPKIXGeneralSubtrees_RemoveGeneralSubtree + * NSSPKIXGeneralSubtrees_FindGeneralSubtree + * NSSPKIXGeneralSubtrees_Equal + * NSSPKIXGeneralSubtrees_Duplicate + * { and finders and comparators } + * + */ + +/* + * NSSPKIXGeneralSubtrees_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +NSSPKIXGeneralSubtrees_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXGeneralSubtrees_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +NSSPKIXGeneralSubtrees_Create +( + NSSArena *arenaOpt, + NSSPKIXGeneralSubtree *generalSubtree1, + ... +); + +/* + * NSSPKIXGeneralSubtrees_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtrees_Destroy +( + NSSPKIXGeneralSubtrees *generalSubtrees +); + +/* + * NSSPKIXGeneralSubtrees_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXGeneralSubtrees_Encode +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralSubtrees_GetGeneralSubtreeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXGeneralSubtrees_GetGeneralSubtreeCount +( + NSSPKIXGeneralSubtrees *generalSubtrees +); + +/* + * NSSPKIXGeneralSubtrees_GetGeneralSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXGeneralSubtree pointers upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree ** +NSSPKIXGeneralSubtrees_GetGeneralSubtrees +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSPKIXGeneralSubtree *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralSubtrees_SetGeneralSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtrees_SetGeneralSubtrees +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSPKIXGeneralSubtree *generalSubtree[], + PRInt32 count +); + +/* + * NSSPKIXGeneralSubtrees_GetGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtree upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree * +NSSPKIXGeneralSubtrees_GetGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralSubtrees_SetGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtrees_SetGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + PRInt32 i, + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtrees_InsertGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtrees_InsertGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + PRInt32 i, + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtrees_AppendGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtrees_AppendGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtrees_RemoveGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtrees_RemoveGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + PRInt32 i +); + +/* + * NSSPKIXGeneralSubtrees_FindGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXGeneralSubtrees_FindGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtrees_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXGeneralSubtrees_Equal +( + NSSPKIXGeneralSubtrees *generalSubtrees1, + NSSPKIXGeneralSubtrees *generalSubtrees2, + PRStatus *statusOpt +); + +/* + * NSSPKIXGeneralSubtrees_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +NSSPKIXGeneralSubtrees_Duplicate +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSArena *arenaOpt +); + +/* + * { and finders and comparators } + * + */ + +/* + * GeneralSubtree + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * GeneralSubtree ::= SEQUENCE { + * base GeneralName, + * minimum [0] BaseDistance DEFAULT 0, + * maximum [1] BaseDistance OPTIONAL } + * + * The public calls for this type: + * + * NSSPKIXGeneralSubtree_Decode + * NSSPKIXGeneralSubtree_Create + * NSSPKIXGeneralSubtree_Destroy + * NSSPKIXGeneralSubtree_Encode + * NSSPKIXGeneralSubtree_GetBase + * NSSPKIXGeneralSubtree_SetBase + * NSSPKIXGeneralSubtree_GetMinimum + * NSSPKIXGeneralSubtree_SetMinimum + * NSSPKIXGeneralSubtree_HasMaximum + * NSSPKIXGeneralSubtree_GetMaximum + * NSSPKIXGeneralSubtree_SetMaximum + * NSSPKIXGeneralSubtree_RemoveMaximum + * NSSPKIXGeneralSubtree_Equal + * NSSPKIXGeneralSubtree_Duplicate + * NSSPKIXGeneralSubtree_DistanceInRange + * {other tests and comparators} + * + */ + +/* + * NSSPKIXGeneralSubtree_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtree upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree * +NSSPKIXGeneralSubtree_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXGeneralSubtree_Create + * + * -- fgmr comments -- + * The optional maximum value may be omitted by specifying -1. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtree upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree * +NSSPKIXGeneralSubtree_Create +( + NSSArena *arenaOpt, + NSSPKIXBaseDistance minimum, + NSSPKIXBaseDistance maximumOpt +); + +/* + * NSSPKIXGeneralSubtree_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtree_Destroy +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtree_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXGeneralSubtree_Encode +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralSubtree_GetBase + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXGeneralSubtree_GetBase +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralSubtree_SetBase + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtree_SetBase +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSPKIXGeneralName *base +); + +/* + * NSSPKIXGeneralSubtree_GetMinimum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN NSSPKIXBaseDistance +NSSPKIXGeneralSubtree_GetMinimum +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtree_SetMinimum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtree_SetMinimum +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSPKIXBaseDistance *minimum +); + +/* + * NSSPKIXGeneralSubtree_HasMaximum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXGeneralSubtree_HasMaximum +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtree_GetMaximum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_HAS_NO_MAXIMUM_BASE_DISTANCE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN NSSPKIXBaseDistance +NSSPKIXGeneralSubtree_GetMaximum +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtree_SetMaximum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtree_SetMaximum +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSPKIXBaseDistance *maximum +); + +/* + * NSSPKIXGeneralSubtree_RemoveMaximum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_HAS_NO_MAXIMUM_BASE_DISTANCE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXGeneralSubtree_RemoveMaximum +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * NSSPKIXGeneralSubtree_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXGeneralSubtree_Equal +( + NSSPKIXGeneralSubtree *generalSubtree1, + NSSPKIXGeneralSubtree *generalSubtree2, + PRStatus *statusOpt +); + +/* + * NSSPKIXGeneralSubtree_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtree upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree * +NSSPKIXGeneralSubtree_Duplicate +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSArena *arenaOpt +); + +/* + * NSSPKIXGeneralSubtree_DistanceInRange + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_TRUE if the specified value is within the minimum and maximum + * base distances + * PR_FALSE if it isn't + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXGeneralSubtree_DistanceInRange +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSPKIXBaseDistance value, + PRStatus *statusOpt +); + +/* + * {other tests and comparators} + * + */ + +/* + * PolicyConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyConstraints ::= SEQUENCE { + * requireExplicitPolicy [0] SkipCerts OPTIONAL, + * inhibitPolicyMapping [1] SkipCerts OPTIONAL } + * + * The public calls for this type: + * + * NSSPKIXPolicyConstraints_Decode + * NSSPKIXPolicyConstraints_Create + * NSSPKIXPolicyConstraints_Destroy + * NSSPKIXPolicyConstraints_Encode + * NSSPKIXPolicyConstraints_HasRequireExplicitPolicy + * NSSPKIXPolicyConstraints_GetRequireExplicitPolicy + * NSSPKIXPolicyConstraints_SetRequireExplicitPolicy + * NSSPKIXPolicyConstraints_RemoveRequireExplicitPolicy + * NSSPKIXPolicyConstraints_HasInhibitPolicyMapping + * NSSPKIXPolicyConstraints_GetInhibitPolicyMapping + * NSSPKIXPolicyConstraints_SetInhibitPolicyMapping + * NSSPKIXPolicyConstraints_RemoveInhibitPolicyMapping + * NSSPKIXPolicyConstraints_Equal + * NSSPKIXPolicyConstraints_Duplicate + * + */ + +/* + * NSSPKIXPolicyConstraints_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyConstraints * +NSSPKIXPolicyConstraints_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXPolicyConstraints_Create + * + * -- fgmr comments -- + * The optional values may be omitted by specifying -1. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * A valid pointer to an NSSPKIXPolicyConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyConstraints * +NSSPKIXPolicyConstraints_Create +( + NSSArena *arenaOpt, + NSSPKIXSkipCerts requireExplicitPolicy, + NSSPKIXSkipCerts inhibitPolicyMapping +); + +/* + * NSSPKIXPolicyConstraints_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyConstraints_Destroy +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * NSSPKIXPolicyConstraints_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXPolicyConstraints_Encode +( + NSSPKIXPolicyConstraints *policyConstraints, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXPolicyConstraints_HasRequireExplicitPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPolicyConstraints_HasRequireExplicitPolicy +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * NSSPKIXPolicyConstraints_GetRequireExplicitPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_HAS_NO_REQUIRE_EXPLICIT_POLICY + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXPolicyConstraints_GetRequireExplicitPolicy +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * NSSPKIXPolicyConstraints_SetRequireExplicitPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyConstraints_SetRequireExplicitPolicy +( + NSSPKIXPolicyConstraints *policyConstraints, + NSSPKIXSkipCerts requireExplicitPolicy +); + +/* + * NSSPKIXPolicyConstraints_RemoveRequireExplicitPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_HAS_NO_REQUIRE_EXPLICIT_POLICY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyConstraints_RemoveRequireExplicitPolicy +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * NSSPKIXPolicyConstraints_HasInhibitPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXPolicyConstraints_HasInhibitPolicyMapping +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * NSSPKIXPolicyConstraints_GetInhibitPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_HAS_NO_INHIBIT_POLICY_MAPPING + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXPolicyConstraints_GetInhibitPolicyMapping +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * NSSPKIXPolicyConstraints_SetInhibitPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyConstraints_SetInhibitPolicyMapping +( + NSSPKIXPolicyConstraints *policyConstraints, + NSSPKIXSkipCerts inhibitPolicyMapping +); + +/* + * NSSPKIXPolicyConstraints_RemoveInhibitPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_HAS_NO_INHIBIT_POLICY_MAPPING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXPolicyConstraints_RemoveInhibitPolicyMapping +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * NSSPKIXPolicyConstraints_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXPolicyConstraints_Equal +( + NSSPKIXPolicyConstraints *policyConstraints1, + NSSPKIXPolicyConstraints *policyConstraints2, + PRStatus *statusOpt +); + +/* + * NSSPKIXPolicyConstraints_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyConstraints * +NSSPKIXPolicyConstraints_Duplicate +( + NSSPKIXPolicyConstraints *policyConstraints, + NSSArena *arenaOpt +); + +/* + * CRLDistPointsSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint + * + * The public calls for this type: + * + * NSSPKIXCRLDistPointsSyntax_Decode + * NSSPKIXCRLDistPointsSyntax_Create + * NSSPKIXCRLDistPointsSyntax_Destroy + * NSSPKIXCRLDistPointsSyntax_Encode + * NSSPKIXCRLDistPointsSyntax_GetDistributionPointCount + * NSSPKIXCRLDistPointsSyntax_GetDistributionPoints + * NSSPKIXCRLDistPointsSyntax_SetDistributionPoints + * NSSPKIXCRLDistPointsSyntax_GetDistributionPoint + * NSSPKIXCRLDistPointsSyntax_SetDistributionPoint + * NSSPKIXCRLDistPointsSyntax_InsertDistributionPoint + * NSSPKIXCRLDistPointsSyntax_AppendDistributionPoint + * NSSPKIXCRLDistPointsSyntax_RemoveDistributionPoint + * NSSPKIXCRLDistPointsSyntax_FindDistributionPoint + * NSSPKIXCRLDistPointsSyntax_Equal + * NSSPKIXCRLDistPointsSyntax_Duplicate + * + */ + +/* + * NSSPKIXCRLDistPointsSyntax_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCRLDistPointsSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCRLDistPointsSyntax * +NSSPKIXCRLDistPointsSyntax_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXCRLDistPointsSyntax_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * A valid pointer to an NSSPKIXCRLDistPointsSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCRLDistPointsSyntax * +NSSPKIXCRLDistPointsSyntax_Create +( + NSSArena *arenaOpt, + NSSPKIXDistributionPoint *distributionPoint1, + ... +); + +/* + * NSSPKIXCRLDistPointsSyntax_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCRLDistPointsSyntax_Destroy +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax +); + +/* + * NSSPKIXCRLDistPointsSyntax_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXCRLDistPointsSyntax_Encode +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCRLDistPointsSyntax_GetDistributionPointCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXCRLDistPointsSyntax_GetDistributionPointCount +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax +); + +/* + * NSSPKIXCRLDistPointsSyntax_GetDistributionPoints + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXDistributionPoint pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoints ** +NSSPKIXCRLDistPointsSyntax_GetDistributionPoints +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSDistributionPoint *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCRLDistPointsSyntax_SetDistributionPoints + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCRLDistPointsSyntax_SetDistributionPoints +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSDistributionPoint *distributionPoint[] + PRInt32 count +); + +/* + * NSSPKIXCRLDistPointsSyntax_GetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoint * +NSSPKIXCRLDistPointsSyntax_GetDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSArena *arenaOpt +); + +/* + * NSSPKIXCRLDistPointsSyntax_SetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCRLDistPointsSyntax_SetDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + PRInt32 i, + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXCRLDistPointsSyntax_InsertDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCRLDistPointsSyntax_InsertDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + PRInt32 i, + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXCRLDistPointsSyntax_AppendDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCRLDistPointsSyntax_AppendDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXCRLDistPointsSyntax_RemoveDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXCRLDistPointsSyntax_RemoveDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + PRInt32 i +); + +/* + * NSSPKIXCRLDistPointsSyntax_FindDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXCRLDistPointsSyntax_FindDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXCRLDistPointsSyntax_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXCRLDistPointsSyntax_Equal +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax1, + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax2, + PRStatus *statusOpt +); + +/* + * NSSPKIXCRLDistPointsSyntax_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCRLDistPointsSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCRLDistPointsSyntax * +NSSPKIXCRLDistPointsSyntax_Duplicate +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSArena *arenaOpt +); + +/* + * DistributionPoint + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistributionPoint ::= SEQUENCE { + * distributionPoint [0] DistributionPointName OPTIONAL, + * reasons [1] ReasonFlags OPTIONAL, + * cRLIssuer [2] GeneralNames OPTIONAL } + * + * The public calls for this type: + * + * NSSPKIXDistributionPoint_Decode + * NSSPKIXDistributionPoint_Create + * NSSPKIXDistributionPoint_Destroy + * NSSPKIXDistributionPoint_Encode + * NSSPKIXDistributionPoint_HasDistributionPoint + * NSSPKIXDistributionPoint_GetDistributionPoint + * NSSPKIXDistributionPoint_SetDistributionPoint + * NSSPKIXDistributionPoint_RemoveDistributionPoint + * NSSPKIXDistributionPoint_HasReasons + * NSSPKIXDistributionPoint_GetReasons + * NSSPKIXDistributionPoint_SetReasons + * NSSPKIXDistributionPoint_RemoveReasons + * NSSPKIXDistributionPoint_HasCRLIssuer + * NSSPKIXDistributionPoint_GetCRLIssuer + * NSSPKIXDistributionPoint_SetCRLIssuer + * NSSPKIXDistributionPoint_RemoveCRLIssuer + * NSSPKIXDistributionPoint_Equal + * NSSPKIXDistributionPoint_Duplicate + * + */ + +/* + * NSSPKIXDistributionPoint_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoint * +NSSPKIXDistributionPoint_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXDistributionPoint_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoint * +NSSPKIXDistributionPoint_Create +( + NSSArena *arenaOpt, + NSSPKIXDistributionPointName *distributionPoint, + NSSPKIXReasonFlags reasons, + NSSPKIXGeneralNames *cRLIssuer +); + +/* + * NSSPKIXDistributionPoint_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXDistributionPoint_Destroy +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXDistributionPoint_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXDistributionPoint_Encode +( + NSSPKIXDistributionPoint *distributionPoint, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXDistributionPoint_HasDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXDistributionPoint_HasDistributionPoint +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXDistributionPoint_GetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +NSSPKIXDistributionPoint_GetDistributionPoint +( + NSSPKIXDistributionPoint *distributionPoint, + NSSArena *arenaOpt +); + +/* + * NSSPKIXDistributionPoint_SetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXDistributionPoint_SetDistributionPoint +( + NSSPKIXDistributionPoint *distributionPoint, + NSSPKIXDistributionPointName *name +); + +/* + * NSSPKIXDistributionPoint_RemoveDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXDistributionPoint_RemoveDistributionPoint +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXDistributionPoint_HasReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXDistributionPoint_HasReasons +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXDistributionPoint_GetReasons + * + * It is unlikely that the reason flags are all zero; so zero is + * returned in error situations. + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_REASONS + * + * Return value: + * A valid nonzero NSSPKIXReasonFlags value upon success + * A valid zero NSSPKIXReasonFlags if the value is indeed zero + * Zero upon error + */ + +NSS_EXTERN NSSPKIXReasonFlags +NSSPKIXDistributionPoint_GetReasons +( + NSSPKIXDistributionPoint *distributionPoint, + PRStatus *statusOpt +); + +/* + * NSSPKIXDistributionPoint_SetReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXDistributionPoint_SetReasons +( + NSSPKIXDistributionPoint *distributionPoint, + NSSPKIXReasonFlags reasons +); + +/* + * NSSPKIXDistributionPoint_RemoveReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_REASONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXDistributionPoint_RemoveReasons +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXDistributionPoint_HasCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXDistributionPoint_HasCRLIssuer +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXDistributionPoint_GetCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_CRL_ISSUER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +NSSPKIXDistributionPoint_GetCRLIssuer +( + NSSPKIXDistributionPoint *distributionPoint, + NSSArena *arenaOpt +); + +/* + * NSSPKIXDistributionPoint_SetCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXDistributionPoint_SetCRLIssuer +( + NSSPKIXDistributionPoint *distributionPoint, + NSSPKIXGeneralNames *cRLIssuer +); + +/* + * NSSPKIXDistributionPoint_RemoveCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_CRL_ISSUER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXDistributionPoint_RemoveCRLIssuer +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * NSSPKIXDistributionPoint_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXDistributionPoint_Equal +( + NSSPKIXDistributionPoint *distributionPoint1, + NSSPKIXDistributionPoint *distributionPoint2, + PRStatus *statusOpt +); + +/* + * NSSPKIXDistributionPoint_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoint * +NSSPKIXDistributionPoint_Duplicate +( + NSSPKIXDistributionPoint *distributionPoint, + NSSArena *arenaOpt +); + +/* + * DistributionPointName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistributionPointName ::= CHOICE { + * fullName [0] GeneralNames, + * nameRelativeToCRLIssuer [1] RelativeDistinguishedName } + * + * The public calls for this type: + * + * NSSPKIXDistributionPointName_Decode + * NSSPKIXDistributionPointName_Create + * NSSPKIXDistributionPointName_CreateFromFullName + * NSSPKIXDistributionPointName_CreateFromNameRelativeToCRLIssuer + * NSSPKIXDistributionPointName_Destroy + * NSSPKIXDistributionPointName_Encode + * NSSPKIXDistributionPointName_GetChoice + * NSSPKIXDistributionPointName_GetFullName + * NSSPKIXDistributionPointName_GetNameRelativeToCRLIssuer + * NSSPKIXDistributionPointName_Equal + * NSSPKIXDistributionPointName_Duplicate + * + */ + +/* + * NSSPKIXDistributionPointName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +NSSPKIXDistributionPointName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXDistributionPointName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME_CHOICE + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_RELATIVE_DISTINGUISHED_NAME + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +NSSPKIXDistributionPointName_Create +( + NSSArena *arenaOpt, + NSSPKIXDistributionPointNameChoice which, + void *name +); + +/* + * NSSPKIXDistributionPointName_CreateFromFullName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +NSSPKIXDistributionPointName_CreateFromFullName +( + NSSArena *arenaOpt, + NSSPKIXGeneralNames *fullName +); + +/* + * NSSPKIXDistributionPointName_CreateFromNameRelativeToCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_RELATIVE_DISTINGUISHED_NAME + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +NSSPKIXDistributionPointName_CreateFromNameRelativeToCRLIssuer +( + NSSArena *arenaOpt, + NSSPKIXRelativeDistinguishedName *nameRelativeToCRLIssuer +); + +/* + * NSSPKIXDistributionPointName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXDistributionPointName_Destroy +( + NSSPKIXDistributionPointName *dpn +); + +/* + * NSSPKIXDistributionPointName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXDistributionPointName_Encode +( + NSSPKIXDistributionPointName *dpn, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXDistributionPointName_GetChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * + * Return value: + * A valid NSSPKIXDistributionPointNameChoice value upon success + * NSSPKIXDistributionPointNameChoice_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointNameChoice +NSSPKIXDistributionPointName_GetChoice +( + NSSPKIXDistributionPointName *dpn +); + +/* + * NSSPKIXDistributionPointName_GetFullName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralnames * +NSSPKIXDistributionPointName_GetFullName +( + NSSPKIXDistributionPointName *dpn, + NSSArena *arenaOpt +); + +/* + * NSSPKIXDistributionPointName_GetNameRelativeToCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +NSSPKIXDistributionPointName_GetNameRelativeToCRLIssuer +( + NSSPKIXDistributionPointName *dpn, + NSSArena *arenaOpt +); + +/* + * NSSPKIXDistributionPointName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXDistributionPointName_Equal +( + NSSPKIXDistributionPointName *dpn1, + NSSPKIXDistributionPointName *dpn2, + PRStatus *statusOpt +); + +/* + * NSSPKIXDistributionPointName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +NSSPKIXDistributionPointName_Duplicate +( + NSSPKIXDistributionPointName *dpn, + NSSArena *arenaOpt +); + +/* + * ReasonFlags + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ReasonFlags ::= BIT STRING { + * unused (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6) } + * + * The public calls for this type: + * + * NSSPKIXReasonFlags_Decode + * NSSPKIXReasonFlags_Create + * NSSPKIXReasonFlags_CreateFromMask + * NSSPKIXReasonFlags_Destroy + * NSSPKIXReasonFlags_Encode + * NSSPKIXReasonFlags_GetMask + * NSSPKIXReasonFlags_SetMask + * NSSPKIXReasonFlags_Equal + * NSSPKIXReasonFlags_Duplicate + * { bitwise accessors? } + * + */ + +/* + * NSSPKIXReasonFlags_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +NSSPKIXReasonFlags_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXReasonFlags_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +NSSPKIXReasonFlags_Create +( + NSSArena *arenaOpt, + PRBool keyCompromise, + PRBool cACompromise, + PRBool affiliationChanged, + PRBool superseded, + PRBool cessationOfOperation, + PRBool certificateHold +); + +/* + * NSSPKIXReasonFlags_CreateFromMask + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS_MASK + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +NSSPKIXReasonFlags_CreateFromMask +( + NSSArena *arenaOpt, + NSSPKIXReasonFlagsMask why +); + +/* + * NSSPKIXReasonFlags_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXReasonFlags_Destroy +( + NSSPKIXReasonFlags *reasonFlags +); + +/* + * NSSPKIXReasonFlags_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXReasonFlags_Encode +( + NSSPKIXReasonFlags *reasonFlags, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXReasonFlags_GetMask + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * A valid mask of NSSPKIXReasonFlagsMask values upon success + * NSSPKIXReasonFlagsMask_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlagsMask +NSSPKIXReasonFlags_GetMask +( + NSSPKIXReasonFlags *reasonFlags +); + +/* + * NSSPKIXReasonFlags_SetMask + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS_MASK + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXReasonFlags_SetMask +( + NSSPKIXReasonFlags *reasonFlags, + NSSPKIXReasonFlagsMask mask +); + +/* + * NSSPKIXReasonFlags_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXReasonFlags_Equal +( + NSSPKIXReasonFlags *reasonFlags1, + NSSPKIXReasonFlags *reasonFlags2, + PRStatus *statusOpt +); + +/* + * NSSPKIXReasonFlags_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +NSSPKIXReasonFlags_Duplicate +( + NSSPKIXReasonFlags *reasonFlags, + NSSArena *arenaOpt +); + +/* + * { bitwise accessors? } + * + */ + +/* + * ExtKeyUsageSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId + * + * The public calls for this type: + * + * NSSPKIXExtKeyUsageSyntax_Decode + * NSSPKIXExtKeyUsageSyntax_Create + * NSSPKIXExtKeyUsageSyntax_Destroy + * NSSPKIXExtKeyUsageSyntax_Encode + * NSSPKIXExtKeyUsageSyntax_GetKeyPurposeIdCount + * NSSPKIXExtKeyUsageSyntax_GetKeyPurposeIds + * NSSPKIXExtKeyUsageSyntax_SetKeyPurposeIds + * NSSPKIXExtKeyUsageSyntax_GetKeyPurposeId + * NSSPKIXExtKeyUsageSyntax_SetKeyPurposeId + * NSSPKIXExtKeyUsageSyntax_InsertKeyPurposeId + * NSSPKIXExtKeyUsageSyntax_AppendKeyPurposeId + * NSSPKIXExtKeyUsageSyntax_RemoveKeyPurposeId + * NSSPKIXExtKeyUsageSyntax_FindKeyPurposeId + * NSSPKIXExtKeyUsageSyntax_Equal + * NSSPKIXExtKeyUsageSyntax_Duplicate + * + */ + +/* + * NSSPKIXExtKeyUsageSyntax_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtKeyUsageSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtKeyUsageSyntax * +NSSPKIXExtKeyUsageSyntax_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXExtKeyUsageSyntax_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * + * Return value: + * A valid pointer to an NSSPKIXExtKeyUsageSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtKeyUsageSyntax * +NSSPKIXExtKeyUsageSyntax_Create +( + NSSArena *arenaOpt, + NSSPKIXKeyPurposeId *kpid1, + ... +); + +/* + * NSSPKIXExtKeyUsageSyntax_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtKeyUsageSyntax_Destroy +( + NSSPKIXExtKeyUsageSyntax *eku +); + +/* + * NSSPKIXExtKeyUsageSyntax_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXExtKeyUsageSyntax_Encode +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtKeyUsageSyntax_GetKeyPurposeIdCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXExtKeyUsageSyntax_GetKeyPurposeIdCount +( + NSSPKIXExtKeyUsageSyntax *eku +); + +/* + * NSSPKIXExtKeyUsageSyntax_GetKeyPurposeIds + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXKeyPurposeId pointers upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyPurposeId ** +NSSPKIXExtKeyUsageSyntax_GetKeyPurposeIds +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSPKIXKeyPurposeId *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtKeyUsageSyntax_SetKeyPurposeIds + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtKeyUsageSyntax_SetKeyPurposeIds +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSPKIXKeyPurposeId *ids[], + PRInt32 count +); + +/* + * NSSPKIXExtKeyUsageSyntax_GetKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyPurposeId upon success + * NULL upon error + */ + +NSS_EXTERN NSSPKIXKeyPurposeId * +NSSPKIXExtKeyUsageSyntax_GetKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXExtKeyUsageSyntax_SetKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtKeyUsageSyntax_SetKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + PRInt32 i, + NSSPKIXKeyPurposeId *id +); + +/* + * NSSPKIXExtKeyUsageSyntax_InsertKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtKeyUsageSyntax_InsertKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + PRInt32 i, + NSSPKIXKeyPurposeId *id +); + +/* + * NSSPKIXExtKeyUsageSyntax_AppendKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtKeyUsageSyntax_AppendKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSPKIXKeyPurposeId *id +); + +/* + * NSSPKIXExtKeyUsageSyntax_RemoveKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXExtKeyUsageSyntax_RemoveKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + PRInt32 i +); + +/* + * NSSPKIXExtKeyUsageSyntax_FindKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified key purpose id upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXExtKeyUsageSyntax_FindKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSPKIXKeyPurposeId *id +); + +/* + * NSSPKIXExtKeyUsageSyntax_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXExtKeyUsageSyntax_Equal +( + NSSPKIXExtKeyUsageSyntax *eku1, + NSSPKIXExtKeyUsageSyntax *eku2, + PRStatus *statusOpt +); + +/* + * NSSPKIXExtKeyUsageSyntax_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXExtKeyUsageSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtKeyUsageSyntax * +NSSPKIXExtKeyUsageSyntax_Duplicate +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSArena *arenaOpt +); + +/* + * AuthorityInfoAccessSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AuthorityInfoAccessSyntax ::= + * SEQUENCE SIZE (1..MAX) OF AccessDescription + * + * The public calls for this type: + * + * NSSPKIXAuthorityInfoAccessSyntax_Decode + * NSSPKIXAuthorityInfoAccessSyntax_Create + * NSSPKIXAuthorityInfoAccessSyntax_Destroy + * NSSPKIXAuthorityInfoAccessSyntax_Encode + * NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescriptionCount + * NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescriptions + * NSSPKIXAuthorityInfoAccessSyntax_SetAccessDescriptions + * NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescription + * NSSPKIXAuthorityInfoAccessSyntax_SetAccessDescription + * NSSPKIXAuthorityInfoAccessSyntax_InsertAccessDescription + * NSSPKIXAuthorityInfoAccessSyntax_AppendAccessDescription + * NSSPKIXAuthorityInfoAccessSyntax_RemoveAccessDescription + * NSSPKIXAuthorityInfoAccessSyntax_FindAccessDescription + * NSSPKIXAuthorityInfoAccessSyntax_Equal + * NSSPKIXAuthorityInfoAccessSyntax_Duplicate + * + */ + +/* + * NSSPKIXAuthorityInfoAccessSyntax_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityInfoAccessSyntax upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityInfoAccessSyntax * +NSSPKIXAuthorityInfoAccessSyntax_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityInfoAccessSyntax upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityInfoAccessSyntax * +NSSPKIXAuthorityInfoAccessSyntax_Create +( + NSSArena *arenaOpt, + NSSPKIXAccessDescription *ad1, + ... +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityInfoAccessSyntax_Destroy +( + NSSPKIXAuthorityInfoAccessSyntax *aias +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXAuthorityInfoAccessSyntax_Encode +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescriptionCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescriptionCount +( + NSSPKIXAuthorityInfoAccessSyntax *aias +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescriptions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXAccessDescription pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription ** +NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescriptions +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSPKIXAccessDescription *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_SetAccessDescriptions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityInfoAccessSyntax_SetAccessDescriptions +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSPKIXAccessDescription *ad[], + PRInt32 count +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAccessDescription upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription * +NSSPKIXAuthorityInfoAccessSyntax_GetAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_SetAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityInfoAccessSyntax_SetAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + PRInt32 i, + NSSPKIXAccessDescription *ad +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_InsertAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityInfoAccessSyntax_InsertAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + PRInt32 i, + NSSPKIXAccessDescription *ad +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_AppendAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityInfoAccessSyntax_AppendAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSPKIXAccessDescription *ad +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_RemoveAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAuthorityInfoAccessSyntax_RemoveAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + PRInt32 i +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_FindAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +NSSPKIXAuthorityInfoAccessSyntax_FindAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSPKIXAccessDescription *ad +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXAuthorityInfoAccessSyntax_Equal +( + NSSPKIXAuthorityInfoAccessSyntax *aias1, + NSSPKIXAuthorityInfoAccessSyntax *aias2, + PRStatus *statusOpt +); + +/* + * NSSPKIXAuthorityInfoAccessSyntax_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityInfoAccessSyntax upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityInfoAccessSyntax * +NSSPKIXAuthorityInfoAccessSyntax_Duplicate +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSArena *arenaOpt +); + +/* + * AccessDescription + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AccessDescription ::= SEQUENCE { + * accessMethod OBJECT IDENTIFIER, + * accessLocation GeneralName } + * + * The public calls for this type: + * + * NSSPKIXAccessDescription_Decode + * NSSPKIXAccessDescription_Create + * NSSPKIXAccessDescription_Destroy + * NSSPKIXAccessDescription_Encode + * NSSPKIXAccessDescription_GetAccessMethod + * NSSPKIXAccessDescription_SetAccessMethod + * NSSPKIXAccessDescription_GetAccessLocation + * NSSPKIXAccessDescription_SetAccessLocation + * NSSPKIXAccessDescription_Equal + * NSSPKIXAccessDescription_Duplicate + * + */ + +/* + * NSSPKIXAccessDescription_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAccessDescription upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription * +NSSPKIXAccessDescription_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXAccessDescription_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * A valid pointer to an NSSPKIXAccessDescription upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription * +NSSPKIXAccessDescription_Create +( + NSSArena *arenaOpt, + NSSOID *accessMethod, + NSSPKIXGeneralName *accessLocation +); + +/* + * NSSPKIXAccessDescription_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAccessDescription_Destroy +( + NSSPKIXAccessDescription *ad +); + +/* + * NSSPKIXAccessDescription_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXAccessDescription_Encode +( + NSSPKIXAccessDescription *ad, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAccessDescription_GetAccessMethod + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSOID pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSOID * +NSSPKIXAccessDescription_GetAccessMethod +( + NSSPKIXAccessDescription *ad +); + +/* + * NSSPKIXAccessDescription_SetAccessMethod + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_INVALID_OID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAccessDescription_SetAccessMethod +( + NSSPKIXAccessDescription *ad, + NSSOID *accessMethod +); + +/* + * NSSPKIXAccessDescription_GetAccessLocation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +NSSPKIXAccessDescription_GetAccessLocation +( + NSSPKIXAccessDescription *ad, + NSSArena *arenaOpt +); + +/* + * NSSPKIXAccessDescription_SetAccessLocation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXAccessDescription_SetAccessLocation +( + NSSPKIXAccessDescription *ad, + NSSPKIXGeneralName *accessLocation +); + +/* + * NSSPKIXAccessDescription_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXAccessDescription_Equal +( + NSSPKIXAccessDescription *ad1, + NSSPKIXAccessDescription *ad2, + PRStatus *statusOpt +); + +/* + * NSSPKIXAccessDescription_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAccessDescription upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription * +NSSPKIXAccessDescription_Duplicate +( + NSSPKIXAccessDescription *ad, + NSSArena *arenaOpt +); + +/* + * IssuingDistributionPoint + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * IssuingDistributionPoint ::= SEQUENCE { + * distributionPoint [0] DistributionPointName OPTIONAL, + * onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE, + * onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE, + * onlySomeReasons [3] ReasonFlags OPTIONAL, + * indirectCRL [4] BOOLEAN DEFAULT FALSE } + * + * The public calls for this type: + * + * NSSPKIXIssuingDistributionPoint_Decode + * NSSPKIXIssuingDistributionPoint_Create + * NSSPKIXIssuingDistributionPoint_Destroy + * NSSPKIXIssuingDistributionPoint_Encode + * NSSPKIXIssuingDistributionPoint_HasDistributionPoint + * NSSPKIXIssuingDistributionPoint_GetDistributionPoint + * NSSPKIXIssuingDistributionPoint_SetDistributionPoint + * NSSPKIXIssuingDistributionPoint_RemoveDistributionPoint + * NSSPKIXIssuingDistributionPoint_GetOnlyContainsUserCerts + * NSSPKIXIssuingDistributionPoint_SetOnlyContainsUserCerts + * NSSPKIXIssuingDistributionPoint_GetOnlyContainsCACerts + * NSSPKIXIssuingDistributionPoint_SetOnlyContainsCACerts + * NSSPKIXIssuingDistributionPoint_HasOnlySomeReasons + * NSSPKIXIssuingDistributionPoint_GetOnlySomeReasons + * NSSPKIXIssuingDistributionPoint_SetOnlySomeReasons + * NSSPKIXIssuingDistributionPoint_RemoveOnlySomeReasons + * NSSPKIXIssuingDistributionPoint_GetIndirectCRL + * NSSPKIXIssuingDistributionPoint_SetIndirectCRL + * NSSPKIXIssuingDistributionPoint_Equal + * NSSPKIXIssuingDistributionPoint_Duplicate + * + */ + +/* + * NSSPKIXIssuingDistributionPoint_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXIssuingDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXIssuingDistributionPoint * +NSSPKIXIssuingDistributionPoint_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * NSSPKIXIssuingDistributionPoint_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * A valid pointer to an NSSPKIXIssuingDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXIssuingDistributionPoint * +NSSPKIXIssuingDistributionPoint_Create +( + NSSArena *arenaOpt, + NSSPKIXDistributionPointName *distributionPointOpt, + PRBool onlyContainsUserCerts, + PRBool onlyContainsCACerts, + NSSPKIXReasonFlags *onlySomeReasons + PRBool indirectCRL +); + +/* + * NSSPKIXIssuingDistributionPoint_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXIssuingDistributionPoint_Destroy +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * NSSPKIXIssuingDistributionPoint_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +NSSPKIXIssuingDistributionPoint_Encode +( + NSSPKIXIssuingDistributionPoint *idp, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NSSPKIXIssuingDistributionPoint_HasDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXIssuingDistributionPoint_HasDistributionPoint +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * NSSPKIXIssuingDistributionPoint_GetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +NSSPKIXIssuingDistributionPoint_GetDistributionPoint +( + NSSPKIXIssuingDistributionPoint *idp, + NSSArena *arenaOpt +); + +/* + * NSSPKIXIssuingDistributionPoint_SetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXIssuingDistributionPoint_SetDistributionPoint +( + NSSPKIXIssuingDistributionPoint *idp, + NSSPKIXDistributionPointName *dpn +); + +/* + * NSSPKIXIssuingDistributionPoint_RemoveDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXIssuingDistributionPoint_RemoveDistributionPoint +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * NSSPKIXIssuingDistributionPoint_GetOnlyContainsUserCerts + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the onlyContainsUserCerts value is true + * PR_FALSE if it isn't + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXIssuingDistributionPoint_GetOnlyContainsUserCerts +( + NSSPKIXIssuingDistributionPoint *idp, + PRStatus *statusOpt +); + +/* + * NSSPKIXIssuingDistributionPoint_SetOnlyContainsUserCerts + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXIssuingDistributionPoint_SetOnlyContainsUserCerts +( + NSSPKIXIssuingDistributionPoint *idp, + PRBool onlyContainsUserCerts +); + +/* + * NSSPKIXIssuingDistributionPoint_GetOnlyContainsCACerts + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the onlyContainsCACerts value is true + * PR_FALSE if it isn't + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXIssuingDistributionPoint_GetOnlyContainsCACerts +( + NSSPKIXIssuingDistributionPoint *idp, + PRStatus *statusOpt +); + +/* + * NSSPKIXIssuingDistributionPoint_SetOnlyContainsCACerts + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXIssuingDistributionPoint_SetOnlyContainsCACerts +( + NSSPKIXIssuingDistributionPoint *idp, + PRBool onlyContainsCACerts +); + +/* + * NSSPKIXIssuingDistributionPoint_HasOnlySomeReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +NSSPKIXIssuingDistributionPoint_HasOnlySomeReasons +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * NSSPKIXIssuingDistributionPoint_GetOnlySomeReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_ONLY_SOME_REASONS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +NSSPKIXIssuingDistributionPoint_GetOnlySomeReasons +( + NSSPKIXIssuingDistributionPoint *idp, + NSSArena *arenaOpt +); + +/* + * NSSPKIXIssuingDistributionPoint_SetOnlySomeReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXIssuingDistributionPoint_SetOnlySomeReasons +( + NSSPKIXIssuingDistributionPoint *idp, + NSSPKIXReasonFlags *onlySomeReasons +); + +/* + * NSSPKIXIssuingDistributionPoint_RemoveOnlySomeReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_ONLY_SOME_REASONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXIssuingDistributionPoint_RemoveOnlySomeReasons +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * NSSPKIXIssuingDistributionPoint_GetIndirectCRL + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the indirectCRL value is true + * PR_FALSE if it isn't + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXIssuingDistributionPoint_GetIndirectCRL +( + NSSPKIXIssuingDistributionPoint *idp, + PRStatus *statusOpt +); + +/* + * NSSPKIXIssuingDistributionPoint_SetIndirectCRL + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +NSSPKIXIssuingDistributionPoint_SetIndirectCRL +( + NSSPKIXIssuingDistributionPoint *idp, + PRBool indirectCRL +); + +/* + * NSSPKIXIssuingDistributionPoint_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +NSSPKIXIssuingDistributionPoint_Equal +( + NSSPKIXIssuingDistributionPoint *idp1, + NSSPKIXIssuingDistributionPoint *idp2, + PRStatus *statusOpt +); + +/* + * NSSPKIXIssuingDistributionPoint_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXIssuingDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXIssuingDistributionPoint * +NSSPKIXIssuingDistributionPoint_Duplicate +( + NSSPKIXIssuingDistributionPoint *idp, + NSSArena *arenaOpt +); + +PR_END_EXTERN_C + +#endif /* NSSPKIX_H */ diff --git a/security/nss/lib/pkix/include/nsspkixt.h b/security/nss/lib/pkix/include/nsspkixt.h new file mode 100644 index 000000000..ea35269ff --- /dev/null +++ b/security/nss/lib/pkix/include/nsspkixt.h @@ -0,0 +1,2281 @@ +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is the Netscape security libraries. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1994-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the + * terms of the GNU General Public License Version 2 or later (the + * "GPL"), in which case the provisions of the GPL are applicable + * instead of those above. If you wish to allow use of your + * version of this file only under the terms of the GPL and not to + * allow others to use your version of this file under the MPL, + * indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by + * the GPL. If you do not delete the provisions above, a recipient + * may use your version of this file under either the MPL or the + * GPL. + */ + +#ifndef NSSPKIXT_H +#define NSSPKIXT_H + +#ifdef DEBUG +static const char NSSPKIXT_CVS_ID[] = "@(#) $Source$ $Revision$ $Date$ $Name$"; +#endif /* DEBUG */ + +/* + * nsspkixt.h + * + * This file contains the public type definitions for the PKIX part-1 + * objects. The contents are strongly based on the types defined in + * RFC 2459 {fgmr: and others, e.g., s/mime?}. The type names have + * been prefixed with "NSSPKIX." + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +PR_BEGIN_EXTERN_C + +/* + * A Note About Strings + * + * RFC 2459 refers to several types of strings, including UniversalString, + * BMPString, UTF8String, TeletexString, PrintableString, IA5String, and + * more. As with the rest of the NSS libraries, all strings are converted + * to UTF8 form as soon as possible, and dealt with in that form from + * then on. + * + */ + +/* + * Attribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Attribute ::= SEQUENCE { + * type AttributeType, + * values SET OF AttributeValue + * -- at least one value is required -- } + * + */ + +struct NSSPKIXAttributeStr; +typedef struct NSSPKIXAttributeStr NSSPKIXAttribute; + +/* + * AttributeType + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AttributeType ::= OBJECT IDENTIFIER + * + */ + +typedef NSSOID NSSPKIXAttributeType; + +/* + * AttributeValue + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AttributeValue ::= ANY + * + */ + +typedef NSSItem NSSPKIXAttributeValue; + +/* + * AttributeTypeAndValue + * + * This structure contains an attribute type (indicated by an OID), + * and the type-specific value. RelativeDistinguishedNamess consist + * of a set of these. These are distinct from Attributes (which have + * SET of values), from AttributeDescriptions (which have qualifiers + * on the types), and from AttributeValueAssertions (which assert a + * a value comparison under some matching rule). + * + * From RFC 2459: + * + * AttributeTypeAndValue ::= SEQUENCE { + * type AttributeType, + * value AttributeValue } + * + */ + +struct NSSPKIXAttributeTypeAndValueStr; +typedef struct NSSPKIXAttributeTypeAndValueStr NSSPKIXAttributeTypeAndValue; + +/* + * X520Name + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520name ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-name)), + * printableString PrintableString (SIZE (1..ub-name)), + * universalString UniversalString (SIZE (1..ub-name)), + * utf8String UTF8String (SIZE (1..ub-name)), + * bmpString BMPString (SIZE(1..ub-name)) } + * + */ + +struct NSSPKIXX520NameStr; +typedef struct NSSPKIXX520NameStr NSSPKIXX520Name; + +/* + * X520CommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520CommonName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-common-name)), + * printableString PrintableString (SIZE (1..ub-common-name)), + * universalString UniversalString (SIZE (1..ub-common-name)), + * utf8String UTF8String (SIZE (1..ub-common-name)), + * bmpString BMPString (SIZE(1..ub-common-name)) } + * + */ + +struct NSSPKIXX520CommonNameStr; +typedef struct NSSPKIXX520CommonNameStr NSSPKIXX520CommonName; + +/* + * X520LocalityName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520LocalityName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-locality-name)), + * printableString PrintableString (SIZE (1..ub-locality-name)), + * universalString UniversalString (SIZE (1..ub-locality-name)), + * utf8String UTF8String (SIZE (1..ub-locality-name)), + * bmpString BMPString (SIZE(1..ub-locality-name)) } + * + */ + +struct NSSPKIXX520LocalityNameStr; +typedef struct NSSPKIXX520LocalityNameStr NSSPKIXX520LocalityName; + +/* + * X520StateOrProvinceName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520StateOrProvinceName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-state-name)), + * printableString PrintableString (SIZE (1..ub-state-name)), + * universalString UniversalString (SIZE (1..ub-state-name)), + * utf8String UTF8String (SIZE (1..ub-state-name)), + * bmpString BMPString (SIZE(1..ub-state-name)) } + * + */ + +struct NSSPKIXX520StateOrProvinceNameStr; +typedef struct NSSPKIXX520StateOrProvinceNameStr NSSPKIXX520StateOrProvinceName; + +/* + * X520OrganizationName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520OrganizationName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-organization-name)), + * printableString PrintableString (SIZE (1..ub-organization-name)), + * universalString UniversalString (SIZE (1..ub-organization-name)), + * utf8String UTF8String (SIZE (1..ub-organization-name)), + * bmpString BMPString (SIZE(1..ub-organization-name)) } + * + */ + +struct NSSPKIXX520OrganizationNameStr; +typedef struct NSSPKIXX520OrganizationNameStr NSSPKIXX520OrganizationName; + +/* + * X520OrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520OrganizationalUnitName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-organizational-unit-name)), + * printableString PrintableString + * (SIZE (1..ub-organizational-unit-name)), + * universalString UniversalString + * (SIZE (1..ub-organizational-unit-name)), + * utf8String UTF8String (SIZE (1..ub-organizational-unit-name)), + * bmpString BMPString (SIZE(1..ub-organizational-unit-name)) } + * + */ + +struct NSSPKIXX520OrganizationalUnitNameStr; +typedef struct NSSPKIXX520OrganizationalUnitNameStr NSSPKIXX520OrganizationalUnitName; + +/* + * X520Title + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520Title ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-title)), + * printableString PrintableString (SIZE (1..ub-title)), + * universalString UniversalString (SIZE (1..ub-title)), + * utf8String UTF8String (SIZE (1..ub-title)), + * bmpString BMPString (SIZE(1..ub-title)) } + * + */ + +struct NSSPKIXX520TitleStr; +typedef struct NSSPKIXX520TitleStr NSSPKIXX520Title; + +/* + * X520dnQualifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520dnQualifier ::= PrintableString + * + */ + +struct NSSPKIXX520dnQualifierStr; +typedef struct NSSPKIXX520dnQualifierStr NSSPKIXX520dnQualifier; + +/* + * X520countryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520countryName ::= PrintableString (SIZE (2)) -- IS 3166 codes + * + */ + +struct NSSPKIXX520countryNameStr; +typedef struct NSSPKIXX520countryNameStr NSSPKIXX520countryName; + +/* + * Pkcs9email + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Pkcs9email ::= IA5String (SIZE (1..ub-emailaddress-length)) + * + */ + +struct NSSPKIXPkcs9emailStr; +typedef struct NSSPKIXPkcs9emailStr NSSPKIXPkcs9email; + +/* + * Name + * + * This structure contains a union of the possible name formats, + * which at the moment is limited to an RDNSequence. + * + * From RFC 2459: + * + * Name ::= CHOICE { -- only one possibility for now -- + * rdnSequence RDNSequence } + * + */ + +struct NSSPKIXNameStr; +typedef struct NSSPKIXNameStr NSSPKIXName; + +/* + * NameChoice + * + * This enumeration is used to specify choice within a name. + */ + +enum NSSPKIXNameChoiceEnum { + NSSPKIXNameChoice_NSSinvalid = -1, + NSSPKIXNameChoice_rdnSequence +}; +typedef enum NSSPKIXNameChoiceEnum NSSPKIXNameChoice; + +/* + * RDNSequence + * + * This structure contains a sequence of RelativeDistinguishedName + * objects. + * + * From RFC 2459: + * + * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName + * + */ + +struct NSSPKIXRDNSequenceStr; +typedef struct NSSPKIXRDNSequenceStr NSSPKIXRDNSequence; + +/* + * DistinguishedName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistinguishedName ::= RDNSequence + * + */ + +typedef NSSPKIXRDNSequence NSSPKIXDistinguishedName; + +/* + * RelativeDistinguishedName + * + * This structure contains an unordered set of AttributeTypeAndValue + * objects. RDNs are used to distinguish a set of objects underneath + * a common object. + * + * Often, a single ATAV is sufficient to make a unique distinction. + * For example, if a company assigns its people unique uid values, + * then in the Name "uid=smith,ou=People,o=Acme,c=US" the "uid=smith" + * ATAV by itself forms an RDN. However, sometimes a set of ATAVs is + * needed. For example, if a company needed to distinguish between + * two Smiths by specifying their corporate divisions, then in the + * Name "(cn=Smith,ou=Sales),ou=People,o=Acme,c=US" the parenthesised + * set of ATAVs forms the RDN. + * + * From RFC 2459: + * + * RelativeDistinguishedName ::= + * SET SIZE (1 .. MAX) OF AttributeTypeAndValue + * + */ + +struct NSSPKIXRelativeDistinguishedNameStr; +typedef struct NSSPKIXRelativeDistinguishedNameStr NSSPKIXRelativeDistinguishedName; + +/* + * DirectoryString + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DirectoryString ::= CHOICE { + * teletexString TeletexString (SIZE (1..MAX)), + * printableString PrintableString (SIZE (1..MAX)), + * universalString UniversalString (SIZE (1..MAX)), + * utf8String UTF8String (SIZE (1..MAX)), + * bmpString BMPString (SIZE(1..MAX)) } + * + */ + +struct NSSPKIXDirectoryStringStr; +typedef struct NSSPKIXDirectoryStringStr NSSPKIXDirectoryString; + +/* + * Certificate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Certificate ::= SEQUENCE { + * tbsCertificate TBSCertificate, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING } + * + */ + +struct NSSPKIXCertificateStr; +typedef struct NSSPKIXCertificateStr NSSPKIXCertificate; + +/* + * TBSCertificate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TBSCertificate ::= SEQUENCE { + * version [0] Version DEFAULT v1, + * serialNumber CertificateSerialNumber, + * signature AlgorithmIdentifier, + * issuer Name, + * validity Validity, + * subject Name, + * subjectPublicKeyInfo SubjectPublicKeyInfo, + * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * extensions [3] Extensions OPTIONAL + * -- If present, version shall be v3 -- } + * + */ + +struct NSSPKIXTBSCertificateStr; +typedef struct NSSPKIXTBSCertificateStr NSSPKIXTBSCertificate; + +/* + * Version + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Version ::= INTEGER { v1(0), v2(1), v3(2) } + * + */ + +enum NSSPKIXVersionEnum { + NSSPKIXVersion_NSSinvalid = -1, + NSSPKIXVersion_v1 = 0, + NSSPKIXVersion_v2 = 1, + NSSPKIXVersion_v3 = 2 +}; +typedef enum NSSPKIXVersionEnum NSSPKIXVersion; + +/* + * CertificateSerialNumber + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificateSerialNumber ::= INTEGER + * + */ + +typedef NSSBER NSSPKIXCertificateSerialNumber; + +/* + * Validity + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Validity ::= SEQUENCE { + * notBefore Time, + * notAfter Time } + * + */ + +struct NSSPKIXValidityStr; +typedef struct NSSPKIXValidityStr NSSPKIXValidity; + +/* + * Time + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Time ::= CHOICE { + * utcTime UTCTime, + * generalTime GeneralizedTime } + * + */ + +struct NSSPKIXTimeStr; +typedef struct NSSPKIXTimeStr NSSPKIXTime; + +/* + * UniqueIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UniqueIdentifier ::= BIT STRING + * + */ + +typedef NSSBitString NSSPKIXUniqueIdentifier; + +/* + * SubjectPublicKeyInfo + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectPublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * subjectPublicKey BIT STRING } + * + */ + +struct NSSPKIXSubjectPublicKeyInfoStr; +typedef NSSPKIXSubjectPublicKeyInfoStr NSSPKIXSubjectPublicKeyInfo; + +/* + * Extensions + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension + * + */ + +struct NSSPKIXExtensionsStr; +typedef struct NSSPKIXExtensionsStr NSSPKIXExtensions; + +/* + * Extension + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Extension ::= SEQUENCE { + * extnID OBJECT IDENTIFIER, + * critical BOOLEAN DEFAULT FALSE, + * extnValue OCTET STRING } + * + */ + +struct NSSPKIXExtensionStr; +typedef struct NSSPKIXExtensionStr NSSPKIXExtension; + +/* + * CertificateList + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificateList ::= SEQUENCE { + * tbsCertList TBSCertList, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING } + * + */ + +struct NSSPKIXCertificateListStr; +typedef struct NSSPKIXCertificateListStr NSSPKIXCertificateList; + +/* + * TBSCertList + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TBSCertList ::= SEQUENCE { + * version Version OPTIONAL, + * -- if present, shall be v2 + * signature AlgorithmIdentifier, + * issuer Name, + * thisUpdate Time, + * nextUpdate Time OPTIONAL, + * revokedCertificates SEQUENCE OF SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * crlExtensions [0] Extensions OPTIONAL + * -- if present, shall be v2 -- } + * + */ + +struct NSSPKIXTBSCertListStr; +typedef struct NSSPKIXTBSCertListStr NSSPKIXTBSCertList; + +/* + * revokedCertificates + * + * This is a "helper type" to simplify handling of TBSCertList objects. + * + * revokedCertificates SEQUENCE OF SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * + */ + +struct NSSPKIXrevokedCertificatesStr; +typedef struct NSSPKIXrevokedCertificatesStr NSSPKIXrevokedCertificates; + +/* + * revokedCertificate + * + * This is a "helper type" to simplify handling of TBSCertList objects. + * + * SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * + */ + +struct NSSPKIXrevokedCertificateStr; +typedef struct NSSPKIXrevokedCertificateStr NSSPKIXrevokedCertificate; + +/* + * AlgorithmIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * (1988 syntax) + * + * AlgorithmIdentifier ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, + * parameters ANY DEFINED BY algorithm OPTIONAL } + * -- contains a value of the type + * -- registered for use with the + * -- algorithm object identifier value + * + * + */ + +struct NSSPKIXAlgorithmIdentifierStr; +typedef NSSPKIXAlgorithmIdentifierStr NSSPKIXAlgorithmIdentifier; + +/* + * -- types related to NSSPKIXAlgorithmIdentifiers: + * + * Dss-Sig-Value ::= SEQUENCE { + * r INTEGER, + * s INTEGER } + * + * DomainParameters ::= SEQUENCE { + * p INTEGER, -- odd prime, p=jq +1 + * g INTEGER, -- generator, g + * q INTEGER, -- factor of p-1 + * j INTEGER OPTIONAL, -- subgroup factor, j>= 2 + * validationParms ValidationParms OPTIONAL } + * + * ValidationParms ::= SEQUENCE { + * seed BIT STRING, + * pgenCounter INTEGER } + * + * Dss-Parms ::= SEQUENCE { + * p INTEGER, + * q INTEGER, + * g INTEGER } + * + */ + +/* + * ORAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ORAddress ::= SEQUENCE { + * built-in-standard-attributes BuiltInStandardAttributes, + * built-in-domain-defined-attributes + * BuiltInDomainDefinedAttributes OPTIONAL, + * -- see also teletex-domain-defined-attributes + * extension-attributes ExtensionAttributes OPTIONAL } + * -- The OR-address is semantically absent from the OR-name if the + * -- built-in-standard-attribute sequence is empty and the + * -- built-in-domain-defined-attributes and extension-attributes are + * -- both omitted. + * + */ + +struct NSSPKIXORAddressStr; +typedef struct NSSPKIXORAddressStr NSSPKIXORAddress; + +/* + * BuiltInStandardAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInStandardAttributes ::= SEQUENCE { + * country-name CountryName OPTIONAL, + * administration-domain-name AdministrationDomainName OPTIONAL, + * network-address [0] NetworkAddress OPTIONAL, + * -- see also extended-network-address + * terminal-identifier [1] TerminalIdentifier OPTIONAL, + * private-domain-name [2] PrivateDomainName OPTIONAL, + * organization-name [3] OrganizationName OPTIONAL, + * -- see also teletex-organization-name + * numeric-user-identifier [4] NumericUserIdentifier OPTIONAL, + * personal-name [5] PersonalName OPTIONAL, + * -- see also teletex-personal-name + * organizational-unit-names [6] OrganizationalUnitNames OPTIONAL + * -- see also teletex-organizational-unit-names -- } + * + */ + +struct NSSPKIXBuiltInStandardAttributesStr; +typedef struct NSSPKIXBuiltInStandardAttributesStr NSSPKIXBuiltInStandardAttributes; + +/* + * CountryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CountryName ::= [APPLICATION 1] CHOICE { + * x121-dcc-code NumericString + * (SIZE (ub-country-name-numeric-length)), + * iso-3166-alpha2-code PrintableString + * (SIZE (ub-country-name-alpha-length)) } + * + */ + +struct NSSPKIXCountryNameStr; +typedef struct NSSPKIXCountryNameStr NSSPKIXCountryName; + +/* + * AdministrationDomainName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AdministrationDomainName ::= [APPLICATION 2] CHOICE { + * numeric NumericString (SIZE (0..ub-domain-name-length)), + * printable PrintableString (SIZE (0..ub-domain-name-length)) } + * + */ + +struct NSSPKIXAdministrationDomainNameStr; +typedef struct NSSPKIXAdministrationDomainNameStr NSSPKIXAdministrationDomainName; + +/* + * X121Address + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X121Address ::= NumericString (SIZE (1..ub-x121-address-length)) + * + */ + +struct NSSPKIXX121AddressStr; +typedef struct NSSPKIXX121AddressStr NSSPKIXX121Address; + +/* + * NetworkAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NetworkAddress ::= X121Address -- see also extended-network-address + * + */ + +struct NSSPKIXNetworkAddressStr; +typedef struct NSSPKIXNetworkAddressStr NSSPKIXNetworkAddress; + +/* + * TerminalIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length)) + * + */ + +struct NSSPKIXTerminalIdentifierStr; +typedef struct NSSPKIXTerminalIdentifierStr NSSPKIXTerminalIdentifier; + +/* + * PrivateDomainName + * + * -- fgmr comments -- + * + * PrivateDomainName ::= CHOICE { + * numeric NumericString (SIZE (1..ub-domain-name-length)), + * printable PrintableString (SIZE (1..ub-domain-name-length)) } + * + */ + +struct NSSPKIXPrivateDomainNameStr; +typedef struct NSSPKIXPrivateDomainNameStr NSSPKIXPrivateDomainName; + +/* + * OrganizationName + * + * -- fgmr comments -- + * + * OrganizationName ::= PrintableString + * (SIZE (1..ub-organization-name-length)) + * + */ + +struct NSSPKIXOrganizationNameStr; +typedef struct NSSPKIXOrganizationNameStr NSSPKIXOrganizationName; + +/* + * NumericUserIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NumericUserIdentifier ::= NumericString + * (SIZE (1..ub-numeric-user-id-length)) + * + */ + +struct NSSPKIXNumericUserIdentifierStr; +typedef struct NSSPKIXNumericUserIdentifierStr NSSPKIXNumericUserIdentifier; + +/* + * PersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PersonalName ::= SET { + * surname [0] PrintableString (SIZE (1..ub-surname-length)), + * given-name [1] PrintableString + * (SIZE (1..ub-given-name-length)) OPTIONAL, + * initials [2] PrintableString (SIZE (1..ub-initials-length)) OPTIONAL, + * generation-qualifier [3] PrintableString + * (SIZE (1..ub-generation-qualifier-length)) OPTIONAL } + * + */ + +struct NSSPKIXPersonalNameStr; +typedef NSSPKIXPersonalNameStr NSSPKIXPersonalName; + +/* + * OrganizationalUnitNames + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units) + * OF OrganizationalUnitName + * + */ + +struct NSSPKIXOrganizationalUnitNamesStr; +typedef NSSPKIXOrganizationalUnitNamesStr NSSPKIXOrganizationalUnitNames; + +/* + * OrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * OrganizationalUnitName ::= PrintableString (SIZE + * (1..ub-organizational-unit-name-length)) + * + */ + +struct NSSPKIXOrganizationalUnitNameStr; +typedef struct NSSPKIXOrganizationalUnitNameStr NSSPKIXOrganizationalUnitName; + +/* + * BuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE + * (1..ub-domain-defined-attributes) OF + * BuiltInDomainDefinedAttribute + * + */ + +struct NSSPKIXBuiltInDomainDefinedAttributesStr; +typedef struct NSSPKIXBuiltInDomainDefinedAttributesStr NSSPKIXBuiltInDomainDefinedAttributes; + +/* + * BuiltInDomainDefinedAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInDomainDefinedAttribute ::= SEQUENCE { + * type PrintableString (SIZE + * (1..ub-domain-defined-attribute-type-length)), + * value PrintableString (SIZE + * (1..ub-domain-defined-attribute-value-length))} + * + */ + +struct NSSPKIXBuiltInDomainDefinedAttributeStr; +typedef struct NSSPKIXBuiltInDomainDefinedAttributeStr NSSPKIXBuiltInDomainDefinedAttribute; + +/* + * ExtensionAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF + * ExtensionAttribute + * + */ + +struct NSSPKIXExtensionAttributesStr; +typedef struct NSSPKIXExtensionAttributesStr NSSPKIXExtensionAttributes; + +/* + * ExtensionAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionAttribute ::= SEQUENCE { + * extension-attribute-type [0] INTEGER (0..ub-extension-attributes), + * extension-attribute-value [1] + * ANY DEFINED BY extension-attribute-type } + * + */ + +struct NSSPKIXExtensionAttributeStr; +typedef struct NSSPKIXExtensionAttributeStr NSSPKIXExtensionAttribute; + +/* + * ExtensionAttributeType + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * common-name INTEGER ::= 1 + * teletex-common-name INTEGER ::= 2 + * teletex-organization-name INTEGER ::= 3 + * teletex-personal-name INTEGER ::= 4 + * teletex-organizational-unit-names INTEGER ::= 5 + * teletex-domain-defined-attributes INTEGER ::= 6 + * pds-name INTEGER ::= 7 + * physical-delivery-country-name INTEGER ::= 8 + * postal-code INTEGER ::= 9 + * physical-delivery-office-name INTEGER ::= 10 + * physical-delivery-office-number INTEGER ::= 11 + * extension-OR-address-components INTEGER ::= 12 + * physical-delivery-personal-name INTEGER ::= 13 + * physical-delivery-organization-name INTEGER ::= 14 + * extension-physical-delivery-address-components INTEGER ::= 15 + * unformatted-postal-address INTEGER ::= 16 + * street-address INTEGER ::= 17 + * post-office-box-address INTEGER ::= 18 + * poste-restante-address INTEGER ::= 19 + * unique-postal-name INTEGER ::= 20 + * local-postal-attributes INTEGER ::= 21 + * extended-network-address INTEGER ::= 22 + * terminal-type INTEGER ::= 23 + * + */ + +enum NSSPKIXExtensionAttributeTypeEnum { + NSSPKIXExtensionAttributeType_NSSinvalid = -1, + NSSPKIXExtensionAttributeType_CommonName = 1, + NSSPKIXExtensionAttributeType_TeletexCommonName = 2, + NSSPKIXExtensionAttributeType_TeletexOrganizationName = 3, + NSSPKIXExtensionAttributeType_TeletexPersonalName = 4, + NSSPKIXExtensionAttributeType_TeletexOrganizationalUnitNames = 5, + NSSPKIXExtensionAttributeType_TeletexDomainDefinedAttributes = 6, + NSSPKIXExtensionAttributeType_PdsName = 7, + NSSPKIXExtensionAttributeType_PhysicalDeliveryCountryName = 8, + NSSPKIXExtensionAttributeType_PostalCode = 9, + NSSPKIXExtensionAttributeType_PhysicalDeliveryOfficeName = 10, + NSSPKIXExtensionAttributeType_PhysicalDeliveryOfficeNumber = 11, + NSSPKIXExtensionAttributeType_ExtensionOrAddressComponents = 12, + NSSPKIXExtensionAttributeType_PhysicalDeliveryPersonalName = 13, + NSSPKIXExtensionAttributeType_PhysicalDeliveryOrganizationName = 14, + NSSPKIXExtensionAttributeType_ExtensionPhysicalDeliveryAddressComponents = 15, + NSSPKIXExtensionAttributeType_UnformattedPostalAddress = 16, + NSSPKIXExtensionAttributeType_StreetAddress = 17, + NSSPKIXExtensionAttributeType_PostOfficeBoxAddress = 18, + NSSPKIXExtensionAttributeType_PosteRestanteAddress = 19, + NSSPKIXExtensionAttributeType_UniquePostalName = 20, + NSSPKIXExtensionAttributeType_LocalPostalAttributes = 21, + NSSPKIXExtensionAttributeType_ExtendedNetworkAddress = 22, + NSSPKIXExtensionAttributeType_TerminalType = 23 +}; +typedef enum NSSPKIXExtensionAttributeTypeEnum NSSPKIXExtensionAttributeType; + +/* + * CommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CommonName ::= PrintableString (SIZE (1..ub-common-name-length)) + * + */ + +struct NSSPKIXCommonNameStr; +typedef struct NSSPKIXCommonNameStr NSSPKIXCommonName; + +/* + * TeletexCommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length)) + * + */ + +struct NSSPKIXTeletexCommonNameStr; +typedef struct NSSPKIXTeletexCommonNameStr NSSPKIXTeletexCommonName; + +/* + * TeletexOrganizationName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationName ::= + * TeletexString (SIZE (1..ub-organization-name-length)) + * + */ + +struct NSSPKIXTeletexOrganizationNameStr; +typedef struct NSSPKIXTeletexOrganizationNameStr NSSPKIXTeletexOrganizationName; + +/* + * TeletexPersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexPersonalName ::= SET { + * surname [0] TeletexString (SIZE (1..ub-surname-length)), + * given-name [1] TeletexString + * (SIZE (1..ub-given-name-length)) OPTIONAL, + * initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL, + * generation-qualifier [3] TeletexString (SIZE + * (1..ub-generation-qualifier-length)) OPTIONAL } + * + */ + +struct NSSPKIXTeletexPersonalNameStr; +typedef struct NSSPKIXTeletexPersonalNameStr NSSPKIXTeletexPersonalName; + +/* + * TeletexOrganizationalUnitNames + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationalUnitNames ::= SEQUENCE SIZE + * (1..ub-organizational-units) OF TeletexOrganizationalUnitName + * + */ + +struct NSSPKIXTeletexOrganizationalUnitNamesStr; +typedef struct NSSPKIXTeletexOrganizationalUnitNamesStr NSSPKIXTeletexOrganizationalUnitNames; + +/* + * TeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationalUnitName ::= TeletexString + * (SIZE (1..ub-organizational-unit-name-length)) + * + */ + +struct NSSPKIXTeletexOrganizationalUnitNameStr; +typedef struct NSSPKIXTeletexOrganizationalUnitNameStr NSSPKIXTeletexOrganizationalUnitName; + +/* + * PDSName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PDSName ::= PrintableString (SIZE (1..ub-pds-name-length)) + * + */ + +struct NSSPKIXPDSNameStr; +typedef struct NSSPKIXPDSNameStr NSSPKIXPDSName; + +/* + * PhysicalDeliveryCountryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PhysicalDeliveryCountryName ::= CHOICE { + * x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)), + * iso-3166-alpha2-code PrintableString + * (SIZE (ub-country-name-alpha-length)) } + * + */ + +struct NSSPKIXPhysicalDeliveryCountryNameStr; +typedef struct NSSPKIXPhysicalDeliveryCountryNameStr NSSPKIXPhysicalDeliveryCountryName; + +/* + * PostalCode + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PostalCode ::= CHOICE { + * numeric-code NumericString (SIZE (1..ub-postal-code-length)), + * printable-code PrintableString (SIZE (1..ub-postal-code-length)) } + * + */ + +struct NSSPKIXPostalCodeStr; +typedef struct NSSPKIXPostalCodeStr NSSPKIXPostalCode; + +/* + * PDSParameter + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PDSParameter ::= SET { + * printable-string PrintableString + * (SIZE(1..ub-pds-parameter-length)) OPTIONAL, + * teletex-string TeletexString + * (SIZE(1..ub-pds-parameter-length)) OPTIONAL } + * + */ + +struct NSSPKIXPDSParameterStr; +typedef struct NSSPKIXPDSParameterStr NSSPKIXPDSParameter; + +/* + * PhysicalDeliveryOfficeName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PhysicalDeliveryOfficeName ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXPhysicalDeliveryOfficeName; + +/* + * PhysicalDeliveryOfficeNumber + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PhysicalDeliveryOfficeNumber ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXPhysicalDeliveryOfficeNumber; + +/* + * ExtensionORAddressComponents + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionORAddressComponents ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXExtensionORAddressComponents; + +/* + * PhysicalDeliveryPersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PhysicalDeliveryPersonalName ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXPhysicalDeliveryPersonalName; + +/* + * PhysicalDeliveryOrganizationName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PhysicalDeliveryOrganizationName ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXPhysicalDeliveryOrganizationName; + +/* + * ExtensionPhysicalDeliveryAddressComponents + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXExtensionPhysicalDeliveryAddressComponents; + +/* + * UnformattedPostalAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UnformattedPostalAddress ::= SET { + * printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF + * PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL, + * teletex-string TeletexString + * (SIZE (1..ub-unformatted-address-length)) OPTIONAL } + * + */ + +struct NSSPKIXUnformattedPostalAddressStr; +typedef struct NSSPKIXUnformattedPostalAddressStr NSSPKIXUnformattedPostalAddress; + +/* + * StreetAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * StreetAddress ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXStreetAddress; + +/* + * PostOfficeBoxAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PostOfficeBoxAddress ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXPostOfficeBoxAddress; + +/* + * PosteRestanteAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PosteRestanteAddress ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXPosteRestanteAddress; + +/* + * UniquePostalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UniquePostalName ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXUniquePostalName; + +/* + * LocalPostalAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * LocalPostalAttributes ::= PDSParameter + * + */ + +typedef NSSPKIXPDSParameter NSSPKIXLocalPostalAttributes; + +/* + * ExtendedNetworkAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtendedNetworkAddress ::= CHOICE { + * e163-4-address SEQUENCE { + * number [0] NumericString (SIZE (1..ub-e163-4-number-length)), + * sub-address [1] NumericString + * (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, + * psap-address [0] PresentationAddress } + * + */ + +struct NSSPKIXExtendedNetworkAddressStr; +typedef struct NSSPKIXExtendedNetworkAddressStr NSSPKIXExtendedNetworkAddress; + +/* + * NSSPKIXExtendedNetworkAddressChoice + * + * Helper enumeration for ExtendedNetworkAddress + * -- fgmr comments -- + * + */ + +enum NSSPKIXExtendedNetworkAddressEnum { + NSSPKIXExtendedNetworkAddress_NSSinvalid = -1, + NSSPKIXExtendedNetworkAddress_e1634Address, + NSSPKIXExtendedNetworkAddress_psapAddress +}; +typedef enum NSSPKIXExtendedNetworkAddressEnum NSSPKIXExtendedNetworkAddressChoice; + +/* + * e163-4-address + * + * Helper structure for ExtendedNetworkAddress. + * -- fgmr comments -- + * + * From RFC 2459: + * + * e163-4-address SEQUENCE { + * number [0] NumericString (SIZE (1..ub-e163-4-number-length)), + * sub-address [1] NumericString + * (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, + * + */ + +struct NSSe1634addressStr; +typedef struct NSSe1634addressStr NSSe1634address; + +/* + * PresentationAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PresentationAddress ::= SEQUENCE { + * pSelector [0] EXPLICIT OCTET STRING OPTIONAL, + * sSelector [1] EXPLICIT OCTET STRING OPTIONAL, + * tSelector [2] EXPLICIT OCTET STRING OPTIONAL, + * nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING } + * + */ + +struct NSSPKIXPresentationAddressStr; +typedef struct NSSPKIXPresentationAddressStr NSSPKIXPresentationAddress; + +/* + * TerminalType + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TerminalType ::= INTEGER { + * telex (3), + * teletex (4), + * g3-facsimile (5), + * g4-facsimile (6), + * ia5-terminal (7), + * videotex (8) } (0..ub-integer-options) + * + */ + +enum NSSPKIXTerminalTypeEnum { + NSSPKIXTerminalType_NSSinvalid = -1, + NSSPKIXTerminalType_telex = 3, + NSSPKIXTerminalType_teletex = 4, + NSSPKIXTerminalType_g3Facsimile = 5, + NSSPKIXTerminalType_g4Facsimile = 6, + NSSPKIXTerminalType_iA5Terminal = 7, + NSSPKIXTerminalType_videotex = 8 +}; +typedef enum NSSPKIXTerminalTypeEnum NSSPKIXTerminalType; + +/* + * TeletexDomainDefinedAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexDomainDefinedAttributes ::= SEQUENCE SIZE + * (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute + * + */ + +struct NSSPKIXTeletexDomainDefinedAttributesStr; +typedef struct NSSPKIXTeletexDomainDefinedAttributesStr NSSPKIXTeletexDomainDefinedAttributes; + +/* + * TeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexDomainDefinedAttribute ::= SEQUENCE { + * type TeletexString + * (SIZE (1..ub-domain-defined-attribute-type-length)), + * value TeletexString + * (SIZE (1..ub-domain-defined-attribute-value-length)) } + * + */ + +struct NSSPKIXTeletexDomainDefinedAttributeStr; +typedef struct NSSPKIXTeletexDomainDefinedAttributeStr NSSPKIXTeletexDomainDefinedAttribute; + +/* + * AuthorityKeyIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AuthorityKeyIdentifier ::= SEQUENCE { + * keyIdentifier [0] KeyIdentifier OPTIONAL, + * authorityCertIssuer [1] GeneralNames OPTIONAL, + * authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL } + * -- authorityCertIssuer and authorityCertSerialNumber shall both + * -- be present or both be absent + * + */ + +struct NSSPKIXAuthorityKeyIdentifierStr; +typedef struct NSSPKIXAuthorityKeyIdentifierStr NSSPKIXAuthorityKeyIdentifier; + +/* + * KeyIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * KeyIdentifier ::= OCTET STRING + * + */ + +typedef NSSItem NSSPKIXKeyIdentifier; + +/* + * SubjectKeyIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectKeyIdentifier ::= KeyIdentifier + * + */ + +typedef NSSPKIXKeyIdentifier NSSPKIXSubjectKeyIdentifier; + +/* + * KeyUsage + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * KeyUsage ::= BIT STRING { + * digitalSignature (0), + * nonRepudiation (1), + * keyEncipherment (2), + * dataEncipherment (3), + * keyAgreement (4), + * keyCertSign (5), + * cRLSign (6), + * encipherOnly (7), + * decipherOnly (8) } + * + */ + +struct NSSPKIXKeyUsageStr; +typedef struct NSSPKIXKeyUsageStr NSSPKIXKeyUsage; + +/* + * KeyUsageValue + * + * -- helper for testing many key usages at once + * + */ + +enum NSSPKIXKeyUsageValueEnum { + NSSPKIXKeyUsage_NSSinvalid = 0, + NSSPKIXKeyUsage_DigitalSignature = 0x001, + NSSPKIXKeyUsage_NonRepudiation = 0x002, + NSSPKIXKeyUsage_KeyEncipherment = 0x004, + NSSPKIXKeyUsage_DataEncipherment = 0x008, + NSSPKIXKeyUsage_KeyAgreement = 0x010, + NSSPKIXKeyUsage_KeyCertSign = 0x020, + NSSPKIXKeyUsage_CRLSign = 0x040, + NSSPKIXKeyUsage_EncipherOnly = 0x080, + NSSPKIXKeyUsage_DecipherOnly = 0x100 +}; +typedef enum NSSPKIXKeyUsageValueEnum NSSPKIXKeyUsageValue; + +/* + * PrivateKeyUsagePeriod + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PrivateKeyUsagePeriod ::= SEQUENCE { + * notBefore [0] GeneralizedTime OPTIONAL, + * notAfter [1] GeneralizedTime OPTIONAL } + * -- either notBefore or notAfter shall be present + * + */ + +struct NSSPKIXPrivateKeyUsagePeriodStr; +typedef struct NSSPKIXPrivateKeyUsagePeriodStr NSSPKIXPrivateKeyUsagePeriod; + +/* + * CertificatePolicies + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation + * + */ + +struct NSSPKIXCertificatePoliciesStr; +typedef struct NSSPKIXCertificatePoliciesStr NSSPKIXCertificatePolicies; + +/* + * PolicyInformation + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyInformation ::= SEQUENCE { + * policyIdentifier CertPolicyId, + * policyQualifiers SEQUENCE SIZE (1..MAX) OF + * PolicyQualifierInfo OPTIONAL } + * + */ + +struct NSSPKIXPolicyInformationStr; +typedef struct NSSPKIXPolicyInformationStr NSSPKIXPolicyInformation; + +/* + * CertPolicyId + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertPolicyId ::= OBJECT IDENTIFIER + * + */ + +typedef NSSOID NSSPKIXCertPolicyId; + +/* + * PolicyQualifierInfo + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyQualifierInfo ::= SEQUENCE { + * policyQualifierId PolicyQualifierId, + * qualifier ANY DEFINED BY policyQualifierId } + * + */ + +struct NSSPKIXPolicyQualifierInfoStr; +typedef NSSPKIXPolicyQualifierInfoStr NSSPKIXPolicyQualifierInfo; + +/* + * PolicyQualifierId + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyQualifierId ::= + * OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice ) + * + */ + +typedef NSSOID NSSPKIXPolicyQualifierId; + +/* + * CPSuri + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CPSuri ::= IA5String + * + */ + +struct NSSPKIXCPSuriStr; +typedef struct NSSPKIXCPSuriStr NSSPKIXCPSuri; + +/* + * UserNotice + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UserNotice ::= SEQUENCE { + * noticeRef NoticeReference OPTIONAL, + * explicitText DisplayText OPTIONAL} + * + */ + +struct NSSPKIXUserNoticeStr; +typedef struct NSSPKIXUserNoticeStr NSSPKIXUserNotice; + +/* + * NoticeReference + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NoticeReference ::= SEQUENCE { + * organization DisplayText, + * noticeNumbers SEQUENCE OF INTEGER } + * + */ + +struct NSSPKIXNoticeReferenceStr; +typedef struct NSSPKIXNoticeReferenceStr NSSPKIXNoticeReference; + +/* + * DisplayText + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DisplayText ::= CHOICE { + * visibleString VisibleString (SIZE (1..200)), + * bmpString BMPString (SIZE (1..200)), + * utf8String UTF8String (SIZE (1..200)) } + * + */ + +struct NSSPKIXDisplayTextStr; +typedef struct NSSPKIXDisplayTextStr NSSPKIXDisplayText; + +/* + * PolicyMappings + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE { + * issuerDomainPolicy CertPolicyId, + * subjectDomainPolicy CertPolicyId } + * + */ + +struct NSSPKIXPolicyMappingsStr; +typedef struct NSSPKIXPolicyMappingsStr NSSPKIXPolicyMappings; + +/* + * policyMapping + * + * Helper structure for PolicyMappings + * + * SEQUENCE { + * issuerDomainPolicy CertPolicyId, + * subjectDomainPolicy CertPolicyId } + * + */ + +struct NSSPKIXpolicyMappingStr; +typedef struct NSSPKIXpolicyMappingStr NSSPKIXpolicyMapping; + +/* + * GeneralName + * + * This structure contains a union of the possible general names, + * of which there are several. + * + * From RFC 2459: + * + * GeneralName ::= CHOICE { + * otherName [0] AnotherName, + * rfc822Name [1] IA5String, + * dNSName [2] IA5String, + * x400Address [3] ORAddress, + * directoryName [4] Name, + * ediPartyName [5] EDIPartyName, + * uniformResourceIdentifier [6] IA5String, + * iPAddress [7] OCTET STRING, + * registeredID [8] OBJECT IDENTIFIER } + * + */ + +struct NSSPKIXGeneralNameStr; +typedef struct NSSPKIXGeneralNameStr NSSPKIXGeneralName; + +/* + * GeneralNameChoice + * + * This enumerates the possible general name types. + */ + +enum NSSPKIXGeneralNameChoiceEnum { + NSSPKIXGeneralNameChoice_NSSinvalid = -1, + NSSPKIXGeneralNameChoice_otherName = 0, + NSSPKIXGeneralNameChoice_rfc822Name = 1, + NSSPKIXGeneralNameChoice_dNSName = 2, + NSSPKIXGeneralNameChoice_x400Address = 3, + NSSPKIXGeneralNameChoice_directoryName = 4, + NSSPKIXGeneralNameChoice_ediPartyName = 5, + NSSPKIXGeneralNameChoice_uniformResourceIdentifier = 6, + NSSPKIXGeneralNameChoice_iPAddress = 7, + NSSPKIXGeneralNameChoice_registeredID = 8 +}; +typedef enum NSSPKIXGeneralNameChoiceEnum NSSPKIXGeneralNameChoice; + +/* + * GeneralNames + * + * This structure contains a sequence of GeneralName objects. + * + * From RFC 2459: + * + * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName + * + */ + +struct NSSPKIXGeneralNamesStr; +typedef struct NSSPKIXGeneralNamesStr NSSPKIXGeneralNames; + +/* + * SubjectAltName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectAltName ::= GeneralNames + * + */ + +typedef NSSPKIXGeneralNames NSSPKIXSubjectAltName; + +/* + * AnotherName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AnotherName ::= SEQUENCE { + * type-id OBJECT IDENTIFIER, + * value [0] EXPLICIT ANY DEFINED BY type-id } + * + */ + +struct NSSPKIXAnotherNameStr; +typedef struct NSSPKIXAnotherNameStr NSSPKIXAnotherName; + +/* + * EDIPartyName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * + * EDIPartyName ::= SEQUENCE { + * nameAssigner [0] DirectoryString OPTIONAL, + * partyName [1] DirectoryString } + * + */ + +struct NSSPKIXEDIPartyNameStr; +typedef struct NSSPKIXEDIPartyNameStr NSSPKIXEDIPartyName; + +/* + * IssuerAltName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * IssuerAltName ::= GeneralNames + * + */ + +typedef NSSPKIXGeneralNames NSSPKIXIssuerAltName; + +/* + * SubjectDirectoryAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute + * + */ + +struct NSSPKIXSubjectDirectoryAttributesStr; +typedef struct NSSPKIXSubjectDirectoryAttributesStr NSSPKIXSubjectDirectoryAttributes; + +/* + * BasicConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BasicConstraints ::= SEQUENCE { + * cA BOOLEAN DEFAULT FALSE, + * pathLenConstraint INTEGER (0..MAX) OPTIONAL } + * + */ + +struct NSSPKIXBasicConstraintsStr; +typedef struct NSSPKIXBasicConstraintsStr NSSPKIXBasicConstraints; + +/* + * NameConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NameConstraints ::= SEQUENCE { + * permittedSubtrees [0] GeneralSubtrees OPTIONAL, + * excludedSubtrees [1] GeneralSubtrees OPTIONAL } + * + */ + +struct NSSPKIXNameConstraintsStr; +typedef struct NSSPKIXNameConstraintsStr NSSPKIXNameConstraints; + +/* + * GeneralSubtrees + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree + * + */ + +struct NSSPKIXGeneralSubtreesStr; +typedef struct NSSPKIXGeneralSubtreesStr NSSPKIXGeneralSubtrees; + +/* + * GeneralSubtree + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * GeneralSubtree ::= SEQUENCE { + * base GeneralName, + * minimum [0] BaseDistance DEFAULT 0, + * maximum [1] BaseDistance OPTIONAL } + * + */ + +struct NSSPKIXGeneralSubtreeStr; +typedef struct NSSPKIXGeneralSubtreeStr NSSPKIXGeneralSubtree; + +/* + * BaseDistance + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BaseDistance ::= INTEGER (0..MAX) + * + */ + +typedef PRInt32 NSSPKIXBaseDistance; + +/* + * PolicyConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyConstraints ::= SEQUENCE { + * requireExplicitPolicy [0] SkipCerts OPTIONAL, + * inhibitPolicyMapping [1] SkipCerts OPTIONAL } + * + */ + +struct NSSPKIXPolicyConstraintsStr; +typedef NSSPKIXPolicyConstraintsStr NSSPKIXPolicyConstraints; + +/* + * SkipCerts + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SkipCerts ::= INTEGER (0..MAX) + * + */ + +typedef NSSItem NSSPKIXSkipCerts; + +/* + * CRLDistPointsSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint + * + */ + +struct NSSPKIXCRLDistPointsSyntaxStr; +typedef struct NSSPKIXCRLDistPointsSyntaxStr NSSPKIXCRLDistPointsSyntax; + +/* + * DistributionPoint + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistributionPoint ::= SEQUENCE { + * distributionPoint [0] DistributionPointName OPTIONAL, + * reasons [1] ReasonFlags OPTIONAL, + * cRLIssuer [2] GeneralNames OPTIONAL } + * + */ + +struct NSSPKIXDistributionPointStr; +typedef struct NSSPKIXDistributionPointStr NSSPKIXDistributionPoint; + +/* + * DistributionPointName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistributionPointName ::= CHOICE { + * fullName [0] GeneralNames, + * nameRelativeToCRLIssuer [1] RelativeDistinguishedName } + * + */ + +struct NSSPKIXDistributionPointNameStr; +typedef struct NSSPKIXDistributionPointNameStr NSSPKIXDistributionPointName; + +/* + * DistributionPointNameChoice + * + * -- fgmr comments -- + * + */ + +enum NSSPKIXDistributionPointNameChoiceEnum { + NSSDistributionPointNameChoice_NSSinvalid = -1, + NSSDistributionPointNameChoice_FullName = 0, + NSSDistributionPointNameChoice_NameRelativeToCRLIssuer = 1 +}; +typedef enum NSSPKIXDistributionPointNameChoiceEnum NSSPKIXDistributionPointNameChoice; + +/* + * ReasonFlags + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ReasonFlags ::= BIT STRING { + * unused (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6) } + * + */ + +struct NSSPKIXReasonFlagsStr; +typedef struct NSSPKIXReasonFlagsStr NSSPKIXReasonFlags; + +/* + * ReasonFlagsMask + * + * -- fgmr comments -- + * + */ + +typedef PRInt32 NSSPKIXReasonFlagsMask; +const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_NSSinvalid = -1; +const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_KeyCompromise = 0x02; +const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_CACompromise = 0x04; +const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_AffiliationChanged = 0x08; +const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_Superseded = 0x10; +const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_CessationOfOperation= 0x20; +const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_CertificateHold = 0x40; + +/* + * ExtKeyUsageSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId + * + */ + +struct NSSPKIXExtKeyUsageSyntaxStr; +typedef struct NSSPKIXExtKeyUsageSyntaxStr NSSPKIXExtKeyUsageSyntax; + +/* + * KeyPurposeId + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * KeyPurposeId ::= OBJECT IDENTIFIER + * + */ + +typedef NSSOID NSSPKIXKeyPurposeId; + +/* + * AuthorityInfoAccessSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AuthorityInfoAccessSyntax ::= + * SEQUENCE SIZE (1..MAX) OF AccessDescription + * + */ + +struct NSSPKIXAuthorityInfoAccessSyntaxStr; +typedef struct NSSPKIXAuthorityInfoAccessSyntaxStr NSSPKIXAuthorityInfoAccessSyntax; + +/* + * AccessDescription + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AccessDescription ::= SEQUENCE { + * accessMethod OBJECT IDENTIFIER, + * accessLocation GeneralName } + * + */ + +struct NSSPKIXAccessDescriptionStr; +typedef struct NSSPKIXAccessDescriptionStr NSSPKIXAccessDescription; + +/* + * CRLNumber + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CRLNumber ::= INTEGER (0..MAX) + * + */ + +typedef NSSItem NSSPKIXCRLNumber; + +/* + * IssuingDistributionPoint + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * IssuingDistributionPoint ::= SEQUENCE { + * distributionPoint [0] DistributionPointName OPTIONAL, + * onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE, + * onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE, + * onlySomeReasons [3] ReasonFlags OPTIONAL, + * indirectCRL [4] BOOLEAN DEFAULT FALSE } + * + */ + +struct NSSPKIXIssuingDistributionPointStr; +typedef struct NSSPKIXIssuingDistributionPointStr NSSPKIXIssuingDistributionPoint; + +/* + * BaseCRLNumber + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BaseCRLNumber ::= CRLNumber + * + */ + +typedef NSSPKIXCRLNumber NSSPKIXBaseCRLNumber; + +/* + * CRLReason + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CRLReason ::= ENUMERATED { + * unspecified (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6), + * removeFromCRL (8) } + * + */ + +enum NSSPKIXCRLReasonEnum { + NSSPKIXCRLReasonEnum_NSSinvalid = -1, + NSSPKIXCRLReasonEnum_unspecified = 0, + NSSPKIXCRLReasonEnum_keyCompromise = 1, + NSSPKIXCRLReasonEnum_cACompromise = 2, + NSSPKIXCRLReasonEnum_affiliationChanged = 3, + NSSPKIXCRLReasonEnum_superseded = 4, + NSSPKIXCRLReasonEnum_cessationOfOperation = 5, + NSSPKIXCRLReasonEnum_certificateHold = 6, + NSSPKIXCRLReasonEnum_removeFromCRL = 8 +}; +typedef enum NSSPKIXCRLReasonEnum NSSPKIXCRLReason; + +/* + * CertificateIssuer + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificateIssuer ::= GeneralNames + * + */ + +typedef NSSPKIXGeneralNames NSSPKIXCertificateIssuer; + +/* + * HoldInstructionCode + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * HoldInstructionCode ::= OBJECT IDENTIFIER + * + */ + +typedef NSSOID NSSPKIXHoldInstructionCode; + +/* + * InvalidityDate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * InvalidityDate ::= GeneralizedTime + * + */ + +typedef PRTime NSSPKIXInvalidityDate; + +PR_END_EXTERN_C + +#endif /* NSSPKIXT_H */ diff --git a/security/nss/lib/pkix/include/pkix.h b/security/nss/lib/pkix/include/pkix.h new file mode 100644 index 000000000..8ebe95595 --- /dev/null +++ b/security/nss/lib/pkix/include/pkix.h @@ -0,0 +1,26086 @@ +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is the Netscape security libraries. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1994-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the + * terms of the GNU General Public License Version 2 or later (the + * "GPL"), in which case the provisions of the GPL are applicable + * instead of those above. If you wish to allow use of your + * version of this file only under the terms of the GPL and not to + * allow others to use your version of this file under the MPL, + * indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by + * the GPL. If you do not delete the provisions above, a recipient + * may use your version of this file under either the MPL or the + * GPL. + */ + +#ifndef PKIX_H +#define PKIX_H + +#ifdef DEBUG +static const char PKIX_CVS_ID[] = "@(#) $Source$ $Revision$ $Date$ $Name$"; +#endif /* DEBUG */ + +/* + * pkix.h + * + * This file contains the prototypes for the private methods defined + * for the PKIX part-1 objects. + */ + +#ifndef NSSPKIX_H +#include "nsspkix.h" +#endif /* NSSPKIX_H */ + +#ifndef PKIXT_H +#include "pkixt.h" +#endif /* PKIXT_H */ + +#ifndef ASN1T_H +#include "asn1t.h" +#endif /* ASN1T_H */ + +PR_BEGIN_EXTERN_C + +/* + * Attribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Attribute ::= SEQUENCE { + * type AttributeType, + * values SET OF AttributeValue + * -- at least one value is required -- } + * + * The private calls for the type: + * + * nssPKIXAttribute_Decode + * nssPKIXAttribute_Create + * nssPKIXAttribute_CreateFromArray + * nssPKIXAttribute_Destroy + * nssPKIXAttribute_Encode + * nssPKIXAttribute_GetType + * nssPKIXAttribute_SetType + * nssPKIXAttribute_GetValueCount + * nssPKIXAttribute_GetValues + * nssPKIXAttribute_SetValues + * nssPKIXAttribute_GetValue + * nssPKIXAttribute_SetValue + * nssPKIXAttribute_AddValue + * nssPKIXAttribute_RemoveValue + * nssPKIXAttribute_FindValue + * nssPKIXAttribute_Equal + * nssPKIXAttribute_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXAttribute_verifyPointer + */ + +/* + * nssPKIXAttribute_template + * + * + */ + +extern const nssASN1Template nssPKIXAttribute_template[]; + +/* + * nssPKIXAttribute_Decode + * + * This routine creates an NSSPKIXAttribute by decoding a BER- + * or DER-encoded Attribute as defined in RFC 2459. This + * routine may return NULL upon error, in which case it will + * have created an error stack. If the optional arena argument + * is non-NULL, that arena will be used for the required memory. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +nssPKIXAttribute_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXAttribute_Create + * + * This routine creates an NSSPKIXAttribute from specified components. + * This routine may return NULL upon error, in which case it will have + * created an error stack. If the optional arena argument is non-NULL, + * that arena will be used for the required memory. There must be at + * least one attribute value specified. The final argument must be + * NULL, to indicate the end of the set of attribute values. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +nssPKIXAttribute_Create +( + NSSArena *arenaOpt, + NSSPKIXAttributeType *typeOid, + NSSPKIXAttributeValue *value1, + ... +); + +/* + * nssPKIXAttribute_CreateFromArray + * + * This routine creates an NSSPKIXAttribute from specified components. + * This routine may return NULL upon error, in which case it will have + * created an error stack. If the optional arena argument is non-NULL, + * that arena will be used for the required memory. There must be at + * least one attribute value specified. The final argument must be + * NULL, to indicate the end of the set of attribute values. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +nssPKIXAttribute_CreateFromArray +( + NSSArena *arenaOpt, + NSSPKIXAttributeType *typeOid, + PRUint32 count, + NSSPKIXAttributeValue values[] +); + +/* + * nssPKIXAttribute_Destroy + * + * This routine destroys an NSSPKIXAttribute. It should be called on + * all such objects created without an arena. It does not need to be + * called for objects created with an arena, but it may be. This + * routine returns a PRStatus value. Upon error, it will create an + * error stack and return PR_FAILURE. + * + * The error value may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttribute_Destroy +( + NSSPKIXAttribute *attribute +); + +/* + * nssPKIXAttribute_Encode + * + * This routine returns the BER encoding of the specified + * NSSPKIXAttribute. {usual rules about itemOpt and arenaOpt} + * This routine indicates an error (NSS_ERROR_INVALID_DATA) + * if there are no attribute values (i.e., the last one was removed). + * + * The error value may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_DATA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXAttribute_Encode +( + NSSPKIXAttribute *attribute, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAttribute_GetType + * + * This routine returns the attribute type oid of the specified + * NSSPKIXAttribute. + * + * The error value may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSPKIXAttributeType pointer upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttributeType * +nssPKIXAttribute_GetType +( + NSSPKIXAttribute *attribute +); + +/* + * nssPKIXAttribute_SetType + * + * This routine sets the attribute type oid of the indicated + * NSSPKIXAttribute to the specified value. Since attributes + * may be application-defined, no checking can be done on + * either the correctness of the attribute type oid value nor + * the suitability of the set of attribute values. + * + * The error value may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_OID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttribute_SetType +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeType *attributeType +); + +/* + * nssPKIXAttribute_GetValueCount + * + * This routine returns the number of attribute values present in + * the specified NSSPKIXAttribute. This routine returns a PRInt32. + * Upon error, this routine returns -1. This routine indicates an + * error if the number of values cannot be expressed as a PRInt32. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXAttribute_GetValueCount +( + NSSPKIXAttribute *attribute +); + +/* + * nssPKIXAttribute_GetValues + * + * This routine returns all of the attribute values in the specified + * NSSPKIXAttribute. If the optional pointer to an array of NSSItems + * is non-null, then that array will be used and returned; otherwise, + * an array will be allocated and returned. If the limit is nonzero + * (which is must be if the specified array is nonnull), then an + * error is indicated if it is smaller than the value count. + * {arenaOpt} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSItem's upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttributeValue * +nssPKIXAttribute_GetValues +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeValue rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXAttribute_SetValues + * + * This routine sets all of the values of the specified + * NSSPKIXAttribute to the values in the specified NSSItem array. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_POINTER + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttribute_SetValues +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeValue values[], + PRInt32 count +); + +/* + * nssPKIXAttribute_GetValue + * + * This routine returns the i'th attribute value of the set of + * values in the specified NSSPKIXAttribute. Although the set + * is unordered, an arbitrary ordering will be maintained until + * the data in the attribute is changed. {usual comments about + * itemOpt and arenaOpt} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAttributeValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeValue * +nssPKIXAttribute_GetValue +( + NSSPKIXAttribute *attribute, + PRInt32 i, + NSSPKIXAttributeValue *itemOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAttribute_SetValue + * + * This routine sets the i'th attribute value {blah blah; copies + * memory contents over..} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttribute_SetValue +( + NSSPKIXAttribute *attribute, + PRInt32 i, + NSSPKIXAttributeValue *value +); + +/* + * nssPKIXAttribute_AddValue + * + * This routine adds the specified attribute value to the set in + * the specified NSSPKIXAttribute. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttribute_AddValue +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeValue *value +); + +/* + * nssPKIXAttribute_RemoveValue + * + * This routine removes the i'th attribute value of the set in the + * specified NSSPKIXAttribute. An attempt to remove the last value + * will fail. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_AT_MINIMUM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttribute_RemoveValue +( + NSSPKIXAttribute *attribute, + PRInt32 i +); + +/* + * nssPKIXAttribute_FindValue + * + * This routine searches the set of attribute values in the specified + * NSSPKIXAttribute for the provided data. If an exact match is found, + * then that value's index is returned. If an exact match is not + * found, -1 is returned. If there is more than one exact match, one + * index will be returned. {notes about unorderdness of SET, etc} + * If the index may not be represented as an integer, an error is + * indicated. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value + * The index of the specified attribute value upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXAttribute_FindValue +( + NSSPKIXAttribute *attribute, + NSSPKIXAttributeValue *attributeValue +); + +/* + * nssPKIXAttribute_Equal + * + * This routine compares two NSSPKIXAttribute's for equality. + * It returns PR_TRUE if they are equal, PR_FALSE otherwise. + * This routine also returns PR_FALSE upon error; if you're + * that worried about it, check for an error stack. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXAttribute_Equal +( + NSSPKIXAttribute *one, + NSSPKIXAttribute *two, + PRStatus *statusOpt +); + +/* + * nssPKIXAttribute_Duplicate + * + * This routine duplicates an NSSPKIXAttribute. {arenaOpt} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +nssPKIXAttribute_Duplicate +( + NSSPKIXAttribute *attribute, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXAttribute_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXAttribute + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXAttribute_verifyPointer +( + NSSPKIXAttribute *p +); +#endif /* DEBUG */ + +/* + * AttributeTypeAndValue + * + * This structure contains an attribute type (indicated by an OID), + * and the type-specific value. RelativeDistinguishedNames consist + * of a set of these. These are distinct from Attributes (which have + * SET of values), from AttributeDescriptions (which have qualifiers + * on the types), and from AttributeValueAssertions (which assert a + * a value comparison under some matching rule). + * + * From RFC 2459: + * + * AttributeTypeAndValue ::= SEQUENCE { + * type AttributeType, + * value AttributeValue } + * + * The private calls for the type: + * + * nssPKIXAttributeTypeAndValue_Decode + * nssPKIXAttributeTypeAndValue_CreateFromUTF8 + * nssPKIXAttributeTypeAndValue_Create + * nssPKIXAttributeTypeAndValue_Destroy + * nssPKIXAttributeTypeAndValue_Encode + * nssPKIXAttributeTypeAndValue_GetUTF8Encoding + * nssPKIXAttributeTypeAndValue_GetType + * nssPKIXAttributeTypeAndValue_SetType + * nssPKIXAttributeTypeAndValue_GetValue + * nssPKIXAttributeTypeAndValue_SetValue + * nssPKIXAttributeTypeAndValue_Equal + * nssPKIXAttributeTypeAndValue_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXAttributeTypeAndValue_verifyPointer + */ + +/* + * nssPKIXAttributeTypeAndValue_Decode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +nssPKIXAttributeTypeAndValue_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXAttributeTypeAndValue_CreateFromUTF8 + * + * + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_UNKNOWN_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +nssPKIXAttributeTypeAndValue_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *string +); + +/* + * nssPKIXAttributeTypeAndValue_Create + * + * + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +nssPKIXAttributeTypeAndValue_Create +( + NSSArena *arenaOpt, + NSSPKIXAttributeType *typeOid, + NSSPKIXAttributeValue *value +); + +/* + * nssPKIXAttributeTypeAndValue_Destroy + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttributeTypeAndValue_Destroy +( + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * nssPKIXAttributeTypeAndValue_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXAttributeTypeAndValue_Encode +( + NSSPKIXAttributeTypeAndValue *atav, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAttributeTypeAndValue_GetUTF8Encoding + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXAttributeTypeAndValue_GetUTF8Encoding +( + NSSPKIXAttributeTypeAndValue *atav, + NSSArena *arenaOpt +); + +/* + * nssPKIXAttributeTypeAndValue_GetType + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSPKIXAttributeType pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeType * +nssPKIXAttributeTypeAndValue_GetType +( + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * nssPKIXAttributeTypeAndValue_SetType + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_OID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttributeTypeAndValue_SetType +( + NSSPKIXAttributeTypeAndValue *atav, + NSSPKIXAttributeType *attributeType +); + +/* + * nssPKIXAttributeTypeAndValue_GetValue + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSAttributeValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeValue * +nssPKIXAttributeTypeAndValue_GetValue +( + NSSPKIXAttributeTypeAndValue *atav, + NSSPKIXAttributeValue *itemOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAttributeTypeAndValue_SetValue + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAttributeTypeAndValue_SetValue +( + NSSPKIXAttributeTypeAndValue *atav, + NSSPKIXAttributeValue *value +); + +/* + * nssPKIXAttributeTypeAndValue_Equal + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXAttributeTypeAndValue_Equal +( + NSSPKIXAttributeTypeAndValue *atav1, + NSSPKIXAttributeTypeAndValue *atav2, + PRStatus *statusOpt +); + +/* + * nssPKIXAttributeTypeAndValue_Duplicate + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +nssPKIXAttributeTypeAndValue_Duplicate +( + NSSPKIXAttributeTypeAndValue *atav, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXAttributeTypeAndValue_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXAttributeTypeAndValue + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE_TYPE_AND_VALUE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXAttributeTypeAndValue_verifyPointer +( + NSSPKIXAttributeTypeAndValue *p +); +#endif /* DEBUG */ + +/* + * X520Name + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520name ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-name)), + * printableString PrintableString (SIZE (1..ub-name)), + * universalString UniversalString (SIZE (1..ub-name)), + * utf8String UTF8String (SIZE (1..ub-name)), + * bmpString BMPString (SIZE(1..ub-name)) } + * + * + * ub-name INTEGER ::= 32768 + * + * The private calls for this type: + * + * nssPKIXX520Name_Decode + * nssPKIXX520Name_CreateFromUTF8 + * nssPKIXX520Name_Create + * nssPKIXX520Name_Destroy + * nssPKIXX520Name_Encode + * nssPKIXX520Name_GetUTF8Encoding + * nssPKIXX520Name_Equal + * nssPKIXX520Name_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXX520Name_verifyPointer + */ + +/* + * nssPKIXX520Name_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Name upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Name * +nssPKIXX520Name_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520Name_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Name upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Name * +nssPKIXX520Name_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520Name_Create + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING_TYPE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXX520Name upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Name * +nssPKIXX520Name_Create +( + NSSArena *arenaOpt, + nssStringType type, + NSSItem *data +); + +/* + * nssPKIXX520Name_Destroy + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520Name_Destroy +( + NSSPKIXX520Name *name +); + +/* + * nssPKIXX520Name_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520Name_Encode +( + NSSPKIXX520Name *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXX520Name_GetUTF8Encoding + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXX520Name_GetUTF8Encoding +( + NSSPKIXX520Name *name, + NSSArena *arenaOpt +); + +/* + * nssPKIXX520Name_Equal + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXX520Name_Equal +( + NSSPKIXX520Name *name1, + NSSPKIXX520Name *name2, + PRStatus *statusOpt +); + +/* + * nssPKIXX520Name_Duplicate + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Name upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Name * +nssPKIXX520Name_Duplicate +( + NSSPKIXX520Name *name, + NSSArena *arenaOpt +); + +#ifdef DEBUG + +/* + * nssPKIXX520Name_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXX520Name + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_X520_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXX520Name_verifyPointer +( + NSSPKIXX520Name *p +); + +#endif /* DEBUG */ + +/* + * X520CommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520CommonName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-common-name)), + * printableString PrintableString (SIZE (1..ub-common-name)), + * universalString UniversalString (SIZE (1..ub-common-name)), + * utf8String UTF8String (SIZE (1..ub-common-name)), + * bmpString BMPString (SIZE(1..ub-common-name)) } + * + * + * ub-common-name INTEGER ::= 64 + * + * The private calls for this type: + * + * + * nssPKIXX520CommonName_Decode + * nssPKIXX520CommonName_CreateFromUTF8 + * nssPKIXX520CommonName_Create + * nssPKIXX520CommonName_Destroy + * nssPKIXX520CommonName_Encode + * nssPKIXX520CommonName_GetUTF8Encoding + * nssPKIXX520CommonName_Equal + * nssPKIXX520CommonName_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXX520CommonName_verifyPointer + */ + +/* + * nssPKIXX520CommonName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520CommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520CommonName * +nssPKIXX520CommonName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520CommonName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520CommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520CommonName * +nssPKIXX520CommonName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520CommonName_Create + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING_TYPE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXX520CommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520CommonName * +nssPKIXX520CommonName_Create +( + NSSArena *arenaOpt, + nssStringType type, + NSSItem *data +); + +/* + * nssPKIXX520CommonName_Destroy + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520CommonName_Destroy +( + NSSPKIXX520CommonName *name +); + +/* + * nssPKIXX520CommonName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520CommonName_Encode +( + NSSPKIXX520CommonName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXX520CommonName_GetUTF8Encoding + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXX520CommonName_GetUTF8Encoding +( + NSSPKIXX520CommonName *name, + NSSArena *arenaOpt +); + +/* + * nssPKIXX520CommonName_Equal + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXX520CommonName_Equal +( + NSSPKIXX520CommonName *name1, + NSSPKIXX520CommonName *name2, + PRStatus *statusOpt +); + +/* + * nssPKIXX520CommonName_Duplicate + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520CommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520CommonName * +nssPKIXX520CommonName_Duplicate +( + NSSPKIXX520CommonName *name, + NSSArena *arenaOpt +); + +#ifdef DEBUG + +/* + * nssPKIXX520CommonName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXX520CommonName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_X520_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXX520CommonName_verifyPointer +( + NSSPKIXX520CommonName *p +); + +#endif /* DEBUG */ + +/* + * X520LocalityName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520LocalityName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-locality-name)), + * printableString PrintableString (SIZE (1..ub-locality-name)), + * universalString UniversalString (SIZE (1..ub-locality-name)), + * utf8String UTF8String (SIZE (1..ub-locality-name)), + * bmpString BMPString (SIZE(1..ub-locality-name)) } + * + * The private calls for this type: + * + * nssPKIXX520LocalityName_Decode + * nssPKIXX520LocalityName_CreateFromUTF8 + * nssPKIXX520LocalityName_Encode + * + */ + +/* + * nssPKIXX520LocalityName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520LocalityName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520LocalityName * +nssPKIXX520LocalityName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520LocalityName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520LocalityName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520LocalityName * +nssPKIXX520LocalityName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520LocalityName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520LocalityName_Encode +( + NSSPKIXX520LocalityName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520StateOrProvinceName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520StateOrProvinceName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-state-name)), + * printableString PrintableString (SIZE (1..ub-state-name)), + * universalString UniversalString (SIZE (1..ub-state-name)), + * utf8String UTF8String (SIZE (1..ub-state-name)), + * bmpString BMPString (SIZE(1..ub-state-name)) } + * + * The private calls for this type: + * + * nssPKIXX520StateOrProvinceName_Decode + * nssPKIXX520StateOrProvinceName_CreateFromUTF8 + * nssPKIXX520StateOrProvinceName_Encode + * + */ + +/* + * nssPKIXX520StateOrProvinceName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520StateOrProvinceName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520StateOrProvinceName * +nssPKIXX520StateOrProvinceName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520StateOrProvinceName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520StateOrProvinceName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520StateOrProvinceName * +nssPKIXX520StateOrProvinceName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520StateOrProvinceName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520StateOrProvinceName_Encode +( + NSSPKIXX520StateOrProvinceName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520OrganizationName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520OrganizationName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-organization-name)), + * printableString PrintableString (SIZE (1..ub-organization-name)), + * universalString UniversalString (SIZE (1..ub-organization-name)), + * utf8String UTF8String (SIZE (1..ub-organization-name)), + * bmpString BMPString (SIZE(1..ub-organization-name)) } + * + * The private calls for this type: + * + * nssPKIXX520OrganizationName_Decode + * nssPKIXX520OrganizationName_CreateFromUTF8 + * nssPKIXX520OrganizationName_Encode + * + */ + +/* + * nssPKIXX520OrganizationName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520OrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520OrganizationName * +nssPKIXX520OrganizationName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520OrganizationName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520OrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520OrganizationName * +nssPKIXX520OrganizationName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520OrganizationName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520OrganizationName_Encode +( + NSSPKIXX520OrganizationName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520OrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520OrganizationalUnitName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-organizational-unit-name)), + * printableString PrintableString + * (SIZE (1..ub-organizational-unit-name)), + * universalString UniversalString + * (SIZE (1..ub-organizational-unit-name)), + * utf8String UTF8String (SIZE (1..ub-organizational-unit-name)), + * bmpString BMPString (SIZE(1..ub-organizational-unit-name)) } + * + * The private calls for this type: + * + * nssPKIXX520OrganizationalUnitName_Decode + * nssPKIXX520OrganizationalUnitName_CreateFromUTF8 + * nssPKIXX520OrganizationalUnitName_Encode + * + */ + +/* + * nssPKIXX520OrganizationalUnitName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520OrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520OrganizationalUnitName * +nssPKIXX520OrganizationalUnitName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520OrganizationalUnitName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520OrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520OrganizationalUnitName * +nssPKIXX520OrganizationalUnitName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520OrganizationalUnitName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520OrganizationalUnitName_Encode +( + NSSPKIXX520OrganizationalUnitName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520Title + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520Title ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-title)), + * printableString PrintableString (SIZE (1..ub-title)), + * universalString UniversalString (SIZE (1..ub-title)), + * utf8String UTF8String (SIZE (1..ub-title)), + * bmpString BMPString (SIZE(1..ub-title)) } + * + * The private calls for this type: + * + * nssPKIXX520Title_Decode + * nssPKIXX520Title_CreateFromUTF8 + * nssPKIXX520Title_Encode + * + */ + +/* + * nssPKIXX520Title_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Title upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Title * +nssPKIXX520Title_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520Title_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520Title upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520Title * +nssPKIXX520Title_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520Title_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520Title_Encode +( + NSSPKIXX520Title *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520dnQualifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520dnQualifier ::= PrintableString + * + * The private calls for this type: + * + * nssPKIXX520dnQualifier_Decode + * nssPKIXX520dnQualifier_CreateFromUTF8 + * nssPKIXX520dnQualifier_Encode + * + */ + +/* + * nssPKIXX520dnQualifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520dnQualifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520dnQualifier * +nssPKIXX520dnQualifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520dnQualifier_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520dnQualifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520dnQualifier * +nssPKIXX520dnQualifier_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520dnQualifier_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520dnQualifier_Encode +( + NSSPKIXX520dnQualifier *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X520countryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X520countryName ::= PrintableString (SIZE (2)) -- IS 3166 codes + * + * The private calls for this type: + * + * nssPKIXX520countryName_Decode + * nssPKIXX520countryName_CreateFromUTF8 + * nssPKIXX520countryName_Encode + * + */ + +/* + * nssPKIXX520countryName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520countryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520countryName * +nssPKIXX520countryName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX520countryName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX520countryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX520countryName * +nssPKIXX520countryName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX520countryName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX520countryName_Encode +( + NSSPKIXX520countryName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * Pkcs9email + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Pkcs9email ::= IA5String (SIZE (1..ub-emailaddress-length)) + * + * The private calls for this type: + * + * nssPKIXPkcs9email_Decode + * nssPKIXPkcs9email_CreateFromUTF8 + * nssPKIXPkcs9email_Encode + * + */ + +/* + * nssPKIXPkcs9email_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPkcs9email upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPkcs9email * +nssPKIXPkcs9email_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPkcs9email_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPkcs9email upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPkcs9email * +nssPKIXPkcs9email_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXPkcs9email_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_X520_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPkcs9email_Encode +( + NSSPKIXPkcs9email *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * Name + * + * This structure contains a union of the possible name formats, + * which at the moment is limited to an RDNSequence. + * + * From RFC 2459: + * + * Name ::= CHOICE { -- only one possibility for now -- + * rdnSequence RDNSequence } + * + * The private calls for this type: + * + * nssPKIXName_Decode + * nssPKIXName_CreateFromUTF8 + * nssPKIXName_Create + * nssPKIXName_CreateFromRDNSequence + * nssPKIXName_Destroy + * nssPKIXName_Encode + * nssPKIXName_GetUTF8Encoding + * nssPKIXName_GetChoice + * nssPKIXName_GetRDNSequence + * nssPKIXName_GetSpecifiedChoice {fgmr remove this} +{fgmr} _SetRDNSequence +{fgmr} _SetSpecifiedChoice + * nssPKIXName_Equal + * nssPKIXName_Duplicate + * + * (here is where I had specific attribute value gettors in pki1) + * + * In debug builds, the following call is available: + * + * nssPKIXName_verifyPointer + * + */ + +/* + * nssPKIXName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXName_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_UNKNOWN_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *string +); + +/* + * nssPKIXName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_CHOICE + * NSS_ERROR_INVALID_ARGUMENT + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXName_Create +( + NSSArena *arenaOpt, + NSSPKIXNameChoice choice, + void *arg +); + +/* + * nssPKIXName_CreateFromRDNSequence + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXName_CreateFromRDNSequence +( + NSSArena *arenaOpt, + NSSPKIXRDNSequence *rdnSequence +); + +/* + * nssPKIXName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXName_Destroy +( + NSSPKIXName *name +); + +/* + * nssPKIXName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXName_Encode +( + NSSPKIXName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXName_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXName_GetUTF8Encoding +( + NSSPKIXName *name, + NSSArena *arenaOpt +); + +/* + * nssPKIXName_GetChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * A valid element of the NSSPKIXNameChoice enumeration upon success + * The value NSSPKIXNameChoice_NSSinvalid (-1) upon error + */ + +NSS_EXTERN NSSPKIXNameChoice +nssPKIXName_GetChoice +( + NSSPKIXName *name +); + +/* + * nssPKIXName_GetRDNSequence + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A pointer to a valid NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +nssPKIXName_GetRDNSequence +( + NSSPKIXName *name, + NSSArena *arenaOpt +); + +/* + * nssPKIXName_GetSpecifiedChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A valid pointer ... + * NULL upon failure + */ + +NSS_EXTERN void * +nssPKIXName_GetSpecifiedChoice +( + NSSPKIXName *name, + NSSPKIXNameChoice choice, + NSSArena *arenaOpt +); + +/* + * nssPKIXName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXName_Equal +( + NSSPKIXName *name1, + NSSPKIXName *name2, + PRStatus *statusOpt +); + +/* + * nssPKIXName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXName_Duplicate +( + NSSPKIXName *name, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXName_verifyPointer +( + NSSPKIXName *p +); +#endif /* DEBUG */ + +/* + * RDNSequence + * + * This structure contains a sequence of RelativeDistinguishedName + * objects. + * + * From RFC 2459: + * + * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName + * + * The private calls for this type: + * + * nssPKIXRDNSequence_Decode + * nssPKIXRDNSequence_CreateFromUTF8 + * nssPKIXRDNSequence_Create + * nssPKIXRDNSequence_CreateFromArray + * nssPKIXRDNSequence_Destroy + * nssPKIXRDNSequence_Encode + * nssPKIXRDNSequence_GetUTF8Encoding + * nssPKIXRDNSequence_GetRelativeDistinguishedNameCount + * nssPKIXRDNSequence_GetRelativeDistinguishedNames + * nssPKIXRDNSequence_SetRelativeDistinguishedNames + * nssPKIXRDNSequence_GetRelativeDistinguishedName + * nssPKIXRDNSequence_SetRelativeDistinguishedName + * nssPKIXRDNSequence_AppendRelativeDistinguishedName + * nssPKIXRDNSequence_InsertRelativeDistinguishedName + * nssPKIXRDNSequence_RemoveRelativeDistinguishedName + * nssPKIXRDNSequence_FindRelativeDistinguishedName + * nssPKIXRDNSequence_Equal + * nssPKIXRDNSequence_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXRDNSequence_verifyPointer + * + */ + +/* + * nssPKIXRDNSequence_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +nssPKIXRDNSequence_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXRDNSequence_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_UNKNOWN_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +nssPKIXRDNSequence_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *string +); + +/* + * nssPKIXRDNSequence_CreateFromArray + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +nssPKIXRDNSequence_CreateFromArray +( + NSSArena *arenaOpt, + PRUint32 count, + NSSPKIXRelativeDistinguishedName *rdn1 +); + +/* + * nssPKIXRDNSequence_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +nssPKIXRDNSequence_Create +( + NSSArena *arenaOpt, + NSSPKIXRelativeDistinguishedName *rdn1, + ... +); + +/* + * nssPKIXRDNSequence_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRDNSequence_Destroy +( + NSSPKIXRDNSequence *rdnseq +); + +/* + * nssPKIXRDNSequence_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXRDNSequence_Encode +( + NSSPKIXRDNSequence *rdnseq, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXRDNSequence_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXRDNSequence_GetUTF8Encoding +( + NSSPKIXRDNSequence *rdnseq, + NSSArena *arenaOpt +); + +/* + * nssPKIXRDNSequence_GetRelativeDistinguishedNameCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXRDNSequence_GetRelativeDistinguishedNameCount +( + NSSPKIXRDNSequence *rdnseq +); + +/* + * nssPKIXRDNSequence_GetRelativeDistinguishedNames + * + * This routine returns all of the relative distinguished names in the + * specified RDN Sequence. {...} If the array is allocated, or if the + * specified one has extra space, the array will be null-terminated. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXRelativeDistinguishedName + * pointers upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName ** +nssPKIXRDNSequence_GetRelativeDistinguishedNames +( + NSSPKIXRDNSequence *rdnseq, + NSSPKIXRelativeDistinguishedName *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXRDNSequence_SetRelativeDistinguishedNames + * + * -- fgmr comments -- + * If the array pointer itself is null, the set is considered empty. + * If the count is zero but the pointer nonnull, the array will be + * assumed to be null-terminated. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRDNSequence_SetRelativeDistinguishedNames +( + NSSPKIXRDNSequence *rdnseq, + NSSPKIXRelativeDistinguishedName *rdns[], + PRInt32 countOpt +); + +/* + * nssPKIXRDNSequence_GetRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +nssPKIXRDNSequence_GetRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXRDNSequence_SetRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRDNSequence_SetRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + PRInt32 i, + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * nssPKIXRDNSequence_AppendRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRDNSequence_AppendRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * nssPKIXRDNSequence_InsertRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRDNSequence_InsertRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + PRInt32 i, + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * nssPKIXRDNSequence_RemoveRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRDNSequence_RemoveRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + PRInt32 i +); + +/* + * nssPKIXRDNSequence_FindRelativeDistinguishedName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified attribute value upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXRDNSequence_FindRelativeDistinguishedName +( + NSSPKIXRDNSequence *rdnseq, + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * nssPKIXRDNSequence_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXRDNSequence_Equal +( + NSSPKIXRDNSequence *one, + NSSPKIXRDNSequence *two, + PRStatus *statusOpt +); + +/* + * nssPKIXRDNSequence_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXRDNSequence upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRDNSequence * +nssPKIXRDNSequence_Duplicate +( + NSSPKIXRDNSequence *rdnseq, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXRDNSequence_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXRDNSequence + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN_SEQUENCE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXRDNSequence_verifyPointer +( + NSSPKIXRDNSequence *p +); +#endif /* DEBUG */ + +/* + * DistinguishedName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistinguishedName ::= RDNSequence + * + * This is just a public typedef; no new methods are required. {fgmr-- right?} + */ + +/* + * RelativeDistinguishedName + * + * This structure contains an unordered set of AttributeTypeAndValue + * objects. RDNs are used to distinguish a set of objects underneath + * a common object. + * + * Often, a single ATAV is sufficient to make a unique distinction. + * For example, if a company assigns its people unique uid values, + * then in the Name "uid=smith,ou=People,o=Acme,c=US" the "uid=smith" + * ATAV by itself forms an RDN. However, sometimes a set of ATAVs is + * needed. For example, if a company needed to distinguish between + * two Smiths by specifying their corporate divisions, then in the + * Name "(cn=Smith,ou=Sales),ou=People,o=Acme,c=US" the parenthesised + * set of ATAVs forms the RDN. + * + * From RFC 2459: + * + * RelativeDistinguishedName ::= + * SET SIZE (1 .. MAX) OF AttributeTypeAndValue + * + * The private calls for this type: + * + * nssPKIXRelativeDistinguishedName_Decode + * nssPKIXRelativeDistinguishedName_CreateFromUTF8 + * nssPKIXRelativeDistinguishedName_Create + * nssPKIXRelativeDistinguishedName_CreateFromArray + * nssPKIXRelativeDistinguishedName_Destroy + * nssPKIXRelativeDistinguishedName_Encode + * nssPKIXRelativeDistinguishedName_GetUTF8Encoding + * nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValueCount + * nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValues + * nssPKIXRelativeDistinguishedName_SetAttributeTypeAndValues + * nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValue + * nssPKIXRelativeDistinguishedName_SetAttributeTypeAndValue + * nssPKIXRelativeDistinguishedName_AddAttributeTypeAndValue + * nssPKIXRelativeDistinguishedName_RemoveAttributeTypeAndValue + * nssPKIXRelativeDistinguishedName_FindAttributeTypeAndValue + * nssPKIXRelativeDistinguishedName_Equal + * nssPKIXRelativeDistinguishedName_Duplicate + * + * fgmr: Logical additional functions include + * + * NSSPKIXRelativeDistinguishedName_FindAttributeTypeAndValueByType + * returns PRInt32 + * NSSPKIXRelativeDistinguishedName_FindAttributeTypeAndValuesByType + * returns array of PRInt32 + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValueForType + * returns NSSPKIXAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_GetAttributeTypeAndValuesForType + * returns array of NSSPKIXAttributeTypeAndValue + * NSSPKIXRelativeDistinguishedName_GetAttributeValueForType + * returns NSSPKIXAttributeValue + * NSSPKIXRelativeDistinguishedName_GetAttributeValuesForType + * returns array of NSSPKIXAttributeValue + * + * NOTE: the "return array" versions are only meaningful if an RDN may + * contain multiple ATAVs with the same type. Verify in the RFC if + * this is possible or not. If not, nuke those three functions. + * + * In debug builds, the following call is available: + * + * nssPKIXRelativeDistinguishedName_verifyPointer + * + */ + +/* + * nssPKIXRelativeDistinguishedName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +nssPKIXRelativeDistinguishedName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXRelativeDistinguishedName_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_UNKNOWN_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +nssPKIXRelativeDistinguishedName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *string +); + +/* + * nssPKIXRelativeDistinguishedName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ATAV + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +nssPKIXRelativeDistinguishedName_Create +( + NSSArena *arenaOpt, + NSSPKIXAttributeTypeAndValue *atav1, + ... +); + +/* + * nssPKIXRelativeDistinguishedName_CreateFromArray + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ATAV + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +nssPKIXRelativeDistinguishedName_CreateFromArray +( + NSSArena *arenaOpt, + PRUint32 count, + NSSPKIXAttributeTypeAndValue *atavs +); + +/* + * nssPKIXRelativeDistinguishedName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRelativeDistinguishedName_Destroy +( + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * nssPKIXRelativeDistinguishedName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXRelativeDistinguishedName_Encode +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXRelativeDistinguishedName_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXRelativeDistinguishedName_GetUTF8Encoding +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSArena *arenaOpt +); + +/* + * nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValueCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValueCount +( + NSSPKIXRelativeDistinguishedName *rdn +); + +/* + * nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValues + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXAttributeTypeAndValue + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue ** +nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValues +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSPKIXAttributeTypeAndValue *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXRelativeDistinguishedName_SetAttributeTypeAndValues + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ATAV + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRelativeDistinguishedName_SetAttributeTypeAndValues +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSPKIXAttributeTypeAndValue *atavs[], + PRInt32 countOpt +); + +/* + * nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAttributeTypeAndValue upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttributeTypeAndValue * +nssPKIXRelativeDistinguishedName_GetAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXRelativeDistinguishedName_SetAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRelativeDistinguishedName_SetAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + PRInt32 i, + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * nssPKIXRelativeDistinguishedName_AddAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRelativeDistinguishedName_AddAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * nssPKIXRelativeDistinguishedName_RemoveAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_AT_MINIMUM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXRelativeDistinguishedName_RemoveAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + PRInt32 i +); + +/* + * nssPKIXRelativeDistinguishedName_FindAttributeTypeAndValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_PKIX_ATAV + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified attribute value upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXRelativeDistinguishedName_FindAttributeTypeAndValue +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSPKIXAttributeTypeAndValue *atav +); + +/* + * nssPKIXRelativeDistinguishedName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXRelativeDistinguishedName_Equal +( + NSSPKIXRelativeDistinguishedName *one, + NSSPKIXRelativeDistinguishedName *two, + PRStatus *statusOpt +); + +/* + * nssPKIXRelativeDistinguishedName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RDN + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +nssPKIXRelativeDistinguishedName_Duplicate +( + NSSPKIXRelativeDistinguishedName *rdn, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXRelativeDistinguishedName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXRelativeDistinguishedName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_RELATIVE_DISTINGUISHED_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXRelativeDistinguishedName_verifyPointer +( + NSSPKIXRelativeDistinguishedName *p +); +#endif /* DEBUG */ + +/* + * DirectoryString + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DirectoryString ::= CHOICE { + * teletexString TeletexString (SIZE (1..MAX)), + * printableString PrintableString (SIZE (1..MAX)), + * universalString UniversalString (SIZE (1..MAX)), + * utf8String UTF8String (SIZE (1..MAX)), + * bmpString BMPString (SIZE(1..MAX)) } + * + * The private calls for this type: + * + * nssPKIXDirectoryString_Decode + * nssPKIXDirectoryString_CreateFromUTF8 + * nssPKIXDirectoryString_Encode + * + */ + +/* + * nssPKIXDirectoryString_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDirectoryString upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDirectoryString * +nssPKIXDirectoryString_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXDirectoryString_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDirectoryString upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDirectoryString * +nssPKIXDirectoryString_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXDirectoryString_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_DIRECTORY_STRING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXDirectoryString_Encode +( + NSSPKIXDirectoryString *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * Certificate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Certificate ::= SEQUENCE { + * tbsCertificate TBSCertificate, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING } + * + * The private calls for this type: + * + * nssPKIXCertificate_Decode + * nssPKIXCertificate_Create + * nssPKIXCertificate_Destroy + * nssPKIXCertificate_Encode + * nssPKIXCertificate_GetTBSCertificate + * nssPKIXCertificate_SetTBSCertificate + * nssPKIXCertificate_GetAlgorithmIdentifier + * nssPKIXCertificate_SetAlgorithmIdentifier + * nssPKIXCertificate_GetSignature + * nssPKIXCertificate_SetSignature + * nssPKIXCertificate_Equal + * nssPKIXCertificate_Duplicate + * + * { inherit TBSCertificate gettors? } + * + * In debug builds, the following call is available: + * + * nssPKIXCertificate_verifyPointer + * + */ + +/* + * nssPKIXCertificate_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificate * +nssPKIXCertificate_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXCertificate_Create + * + * -- fgmr comments -- + * { at this level we'll have to just accept a specified signature } + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_ALGID + * NSS_ERROR_INVALID_PKIX_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificate * +nssPKIXCertificate_Create +( + NSSArena *arenaOpt, + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXAlgorithmIdentifier *algID, + NSSItem *signature +); + +/* + * nssPKIXCertificate_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificate_Destroy +( + NSSPKIXCertificate *cert +); + +/* + * nssPKIXCertificate_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXCertificate_Encode +( + NSSPKIXCertificate *cert, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificate_GetTBSCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertificate * +nssPKIXCertificate_GetTBSCertificate +( + NSSPKIXCertificate *cert, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificate_SetTBSCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificate_SetTBSCertificate +( + NSSPKIXCertificate *cert, + NSSPKIXTBSCertificate *tbsCert +); + +/* + * nssPKIXCertificate_GetAlgorithmIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +nssPKIXCertificate_GetAlgorithmIdentifier +( + NSSPKIXCertificate *cert, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificate_SetAlgorithmIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificate_SetAlgorithmIdentifier +( + NSSPKIXCertificate *cert, + NSSPKIXAlgorithmIdentifier *algid, +); + +/* + * nssPKIXCertificate_GetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +nssPKIXCertificate_GetSignature +( + NSSPKIXCertificate *cert, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificate_SetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_POINTER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificate_SetSignature +( + NSSPKIXCertificate *cert, + NSSItem *signature +); + +/* + * nssPKIXCertificate_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXCertificate_Equal +( + NSSPKIXCertificate *one, + NSSPKIXCertificate *two, + PRStatus *statusOpt +); + +/* + * nssPKIXCertificate_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificate * +nssPKIXCertificate_Duplicate +( + NSSPKIXCertificate *cert, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXCertificate_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXCertificate + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXCertificate_verifyPointer +( + NSSPKIXCertificate *p +); +#endif /* DEBUG */ + +/* + * TBSCertificate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TBSCertificate ::= SEQUENCE { + * version [0] Version DEFAULT v1, + * serialNumber CertificateSerialNumber, + * signature AlgorithmIdentifier, + * issuer Name, + * validity Validity, + * subject Name, + * subjectPublicKeyInfo SubjectPublicKeyInfo, + * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * extensions [3] Extensions OPTIONAL + * -- If present, version shall be v3 -- } + * + * The private calls for this type: + * + * nssPKIXTBSCertificate_Decode + * nssPKIXTBSCertificate_Create + * nssPKIXTBSCertificate_Destroy + * nssPKIXTBSCertificate_Encode + * nssPKIXTBSCertificate_GetVersion + * nssPKIXTBSCertificate_SetVersion + * nssPKIXTBSCertificate_GetSerialNumber + * nssPKIXTBSCertificate_SetSerialNumber + * nssPKIXTBSCertificate_GetSignature + * nssPKIXTBSCertificate_SetSignature + * { inherit algid gettors? } + * nssPKIXTBSCertificate_GetIssuer + * nssPKIXTBSCertificate_SetIssuer + * { inherit "helper" issuer gettors? } + * nssPKIXTBSCertificate_GetValidity + * nssPKIXTBSCertificate_SetValidity + * { inherit validity accessors } + * nssPKIXTBSCertificate_GetSubject + * nssPKIXTBSCertificate_SetSubject + * nssPKIXTBSCertificate_GetSubjectPublicKeyInfo + * nssPKIXTBSCertificate_SetSubjectPublicKeyInfo + * nssPKIXTBSCertificate_HasIssuerUniqueID + * nssPKIXTBSCertificate_GetIssuerUniqueID + * nssPKIXTBSCertificate_SetIssuerUniqueID + * nssPKIXTBSCertificate_RemoveIssuerUniqueID + * nssPKIXTBSCertificate_HasSubjectUniqueID + * nssPKIXTBSCertificate_GetSubjectUniqueID + * nssPKIXTBSCertificate_SetSubjectUniqueID + * nssPKIXTBSCertificate_RemoveSubjectUniqueID + * nssPKIXTBSCertificate_HasExtensions + * nssPKIXTBSCertificate_GetExtensions + * nssPKIXTBSCertificate_SetExtensions + * nssPKIXTBSCertificate_RemoveExtensions + * { extension accessors } + * nssPKIXTBSCertificate_Equal + * nssPKIXTBSCertificate_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXTBSCertificate_verifyPointer + */ + +/* + * nssPKIXTBSCertificate_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertificate * +nssPKIXTBSCertificate_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTBSCertificate_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_VERSION + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_SERIAL_NUMBER + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ISSUER_NAME + * NSS_ERROR_INVALID_VALIDITY + * NSS_ERROR_INVALID_SUBJECT_NAME + * NSS_ERROR_INVALID_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ISSUER_UNIQUE_IDENTIFIER + * NSS_ERROR_INVALID_SUBJECT_UNIQUE_IDENTIFIER + * NSS_ERROR_INVALID_EXTENSION + * + * Return value: + */ + +NSS_EXTERN NSSPKIXTBSCertificate * +nssPKIXTBSCertificate_Create +( + NSSArena *arenaOpt, + NSSPKIXVersion version, + NSSPKIXCertificateSerialNumber *serialNumber, + NSSPKIXAlgorithmIdentifier *signature, + NSSPKIXName *issuer, + NSSPKIXValidity *validity, + NSSPKIXName *subject, + NSSPKIXSubjectPublicKeyInfo *spki, + NSSPKIXUniqueIdentifier *issuerUniqueID, + NSSPKIXUniqueIdentifier *subjectUniqueID, + NSSPKIXExtensions *extensions +); + +/* + * nssPKIXTBSCertificate_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_Destroy +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * nssPKIXTBSCertificate_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTBSCertificate_Encode +( + NSSPKIXTBSCertificate *tbsCert, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_GetVersion + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid element of the NSSPKIXVersion enumeration upon success + * NSSPKIXVersion_NSSinvalid (-1) upon failure + */ + +NSS_EXTERN NSSPKIXVersion +nssPKIXTBSCertificate_GetVersion +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * nssPKIXTBSCertificate_SetVersion + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_VERSION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetVersion +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXVersion version +); + +/* + * nssPKIXTBSCertificate_GetSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertificateSerialNumber upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateSerialNumber * +nssPKIXTBSCertificate_GetSerialNumber +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXCertificateSerialNumber *snOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetSerialNumber +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXCertificateSerialNumber *sn +); + +/* + * nssPKIXTBSCertificate_GetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +nssPKIXTBSCertificate_GetSignature +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetSignature +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXAlgorithmIdentifier *algID +); + +/* + * { fgmr inherit algid gettors? } + */ + +/* + * nssPKIXTBSCertificate_GetIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXTBSCertificate_GetIssuer +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetIssuer +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXName *issuer +); + +/* + * { inherit "helper" issuer gettors? } + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * + * Return value: + */ + +/* + * nssPKIXTBSCertificate_GetValidity + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXValidity upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXValidity * +nssPKIXTBSCertificate_GetValidity +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetValidity + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetValidity +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXValidity *validity +); + +/* + * { fgmr inherit validity accessors } + */ + +/* + * nssPKIXTBSCertificate_GetSubject + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXTBSCertificate_GetSubject +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetSubject + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetSubject +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXName *subject +); + +/* + * nssPKIXTBSCertificate_GetSubjectPublicKeyInfo + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXSubjectPublicKeyInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectPublicKeyInfo * +nssPKIXTBSCertificate_GetSubjectPublicKeyInfo +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetSubjectPublicKeyInfo + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetSubjectPublicKeyInfo +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXSubjectPublicKeyInfo *spki +); + +/* + * nssPKIXTBSCertificate_HasIssuerUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXTBSCertificate_HasIssuerUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + PRStatus *statusOpt +); + +/* + * nssPKIXTBSCertificate_GetIssuerUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_CERT_HAS_NO_ISSUER_UNIQUE_ID + * + * Return value: + * A valid pointer to an NSSPKIXUniqueIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUniqueIdentifier * +nssPKIXTBSCertificate_GetIssuerUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXUniqueIdentifier *uidOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetIssuerUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetIssuerUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXUniqueIdentifier *uid +); + +/* + * nssPKIXTBSCertificate_RemoveIssuerUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_CERT_HAS_NO_ISSUER_UNIQUE_ID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_RemoveIssuerUniqueID +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * nssPKIXTBSCertificate_HasSubjectUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXTBSCertificate_HasSubjectUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + PRStatus *statusOpt +); + +/* + * nssPKIXTBSCertificate_GetSubjectUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_CERT_HAS_NO_SUBJECT_UNIQUE_ID + * + * Return value: + * A valid pointer to an NSSPKIXUniqueIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUniqueIdentifier * +nssPKIXTBSCertificate_GetSubjectUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXUniqueIdentifier *uidOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetSubjectUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetSubjectUniqueID +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXUniqueIdentifier *uid +); + +/* + * nssPKIXTBSCertificate_RemoveSubjectUniqueID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_CERT_HAS_NO_SUBJECT_UNIQUE_ID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_RemoveSubjectUniqueID +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * nssPKIXTBSCertificate_HasExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXTBSCertificate_HasExtensions +( + NSSPKIXTBSCertificate *tbsCert, + PRStatus *statusOpt +); + +/* + * nssPKIXTBSCertificate_GetExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_CERT_HAS_NO_EXTENSIONS + * + * Return value: + * A valid pointer to an NSSPKIXExtensions upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensions * +nssPKIXTBSCertificate_GetExtensions +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertificate_SetExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_SetExtensions +( + NSSPKIXTBSCertificate *tbsCert, + NSSPKIXExtensions *extensions +); + +/* + * nssPKIXTBSCertificate_RemoveExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_CERT_HAS_NO_EXTENSIONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_RemoveExtensions +( + NSSPKIXTBSCertificate *tbsCert +); + +/* + * { extension accessors } + */ + +/* + * nssPKIXTBSCertificate_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXTBSCertificate_Equal +( + NSSPKIXTBSCertificate *one, + NSSPKIXTBSCertificate *two, + PRStatus *statusOpt +); + +/* + * nssPKIXTBSCertificate_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertificate * +nssPKIXTBSCertificate_Duplicate +( + NSSPKIXTBSCertificate *tbsCert, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXTBSCertificate_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXTBSCertificate + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERTIFICATE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertificate_verifyPointer +( + NSSPKIXTBSCertificate *p +); +#endif /* DEBUG */ + +/* + * CertificateSerialNumber + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificateSerialNumber ::= INTEGER + * + * This is just a typedef'd NSSBER; no methods are required. + * {fgmr -- the asn.1 stuff should have routines to convert + * integers to natural types when possible and vv. we can + * refer to them here..} + */ + +/* + * Validity + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Validity ::= SEQUENCE { + * notBefore Time, + * notAfter Time } + * + * The private calls for the type: + * + * nssPKIXValidity_Decode + * nssPKIXValidity_Create + * nssPKIXValidity_Encode + * nssPKIXValidity_Destroy + * nssPKIXValidity_GetNotBefore + * nssPKIXValidity_SetNotBefore + * nssPKIXValidity_GetNotAfter + * nssPKIXValidity_SetNotAfter + * nssPKIXValidity_Equal + * nssPKIXValidity_Compare + * nssPKIXValidity_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXValidity_verifyPointer + * + */ + +/* + * nssPKIXValidity_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXValidity upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXValidity * +nssPKIXValidity_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXValidity_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TIME + * + * Return value: + * A valid pointer to an NSSPKIXValidity upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXValidity * +nssPKIXValidity_Create +( + NSSArena *arenaOpt, + NSSPKIXTime notBefore, + NSSPKIXTime notAfter +); + +/* + * nssPKIXValidity_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXValidity_Destroy +( + NSSPKIXValidity *validity +); + +/* + * nssPKIXValidity_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXValidity_Encode +( + NSSPKIXValidity *validity, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXValidity_GetNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid NSSPKIXTime upon success + * {we need to rethink NSSPKIXTime} + */ + +NSS_EXTERN NSSPKIXTime +nssPKIXValidity_GetNotBefore +( + NSSPKIXValidity *validity +); + +/* + * nssPKIXValidity_SetNotBefore + * + * -- fgmr comments -- + * {do we require that it be before the "notAfter" value?} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_VALUE_TOO_LARGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXValidity_SetNotBefore +( + NSSPKIXValidity *validity, + NSSPKIXTime notBefore +); + +/* + * nssPKIXValidity_GetNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid NSSPKIXTime upon success + * {we need to rethink NSSPKIXTime} + */ + +NSS_EXTERN NSSPKIXTime +nssPKIXValidity_GetNotAfter +( + NSSPKIXValidity *validity +); + +/* + * nssPKIXValidity_SetNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_VALUE_TOO_SMALL + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXValidity_SetNotAfter +( + NSSPKIXValidity *validity, + NSSPKIXTime notAfter +); + +/* + * nssPKIXValidity_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXValidity_Equal +( + NSSPKIXValidity *one, + NSSPKIXValidity *two, + PRStatus *statusOpt +); + +/* + * nssPKIXValidity_Compare + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * + * Return value: + * 1 if the second is "greater" or later than the first + * 0 if they are equal + * -1 if the first is "greater" or later than the first + * -2 upon failure + */ + +NSS_EXTERN PRIntn +nssPKIXValidity_Compare +( + NSSPKIXValidity *one, + NSSPKIXValidity *two +); + +/* + * nssPKIXValidity_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXValidity upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXValidity * +nssPKIXValidity_Duplicate +( + NSSPKIXValidity *validity, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXValidity_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXValidity + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_VALIDITY + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXValidity_verifyPointer +( + NSSPKIXValidity *p +); +#endif /* DEBUG */ + +/* + * Time + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Time ::= CHOICE { + * utcTime UTCTime, + * generalTime GeneralizedTime } + * + * The private calls for the type: + * + * nssPKIXTime_Decode + * nssPKIXTime_CreateFromPRTime + * nssPKIXTime_CreateFromUTF8 + * nssPKIXTime_Destroy + * nssPKIXTime_Encode + * nssPKIXTime_GetPRTime + * nssPKIXTime_GetUTF8Encoding + * nssPKIXTime_Equal + * nssPKIXTime_Duplicate + * nssPKIXTime_Compare + * + * In debug builds, the following call is available: + * + * nssPKIXTime_verifyPointer + * + */ + +/* + * nssPKIXTime_Decode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTime upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTime * +nssPKIXTime_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTime_CreateFromPRTime + * + */ + +NSS_EXTERN NSSPKIXTime * +nssPKIXTime_CreateFromPRTime +( + NSSArena *arenaOpt, + PRTime prTime +); + +/* + * nssPKIXTime_CreateFromUTF8 + * + */ + +NSS_EXTERN NSSPKIXTime * +nssPKIXTime_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXTime_Destroy + * + */ + +NSS_EXTERN PR_STATUS +nssPKIXTime_Destroy +( + NSSPKIXTime *time +); + +/* + * nssPKIXTime_Encode + * + */ + +NSS_EXTERN NSSBER * +nssPKIXTime_Encode +( + NSSPKIXTime *time, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTime_GetPRTime + * + * Returns a zero on error + */ + +NSS_EXTERN PRTime +nssPKIXTime_GetPRTime +( + NSSPKIXTime *time, + PRStatus *statusOpt +); + +/* + * nssPKIXTime_GetUTF8Encoding + * + */ + +NSS_EXTERN NSSUTF8 * +nssPKXITime_GetUTF8Encoding +( + NSSPKIXTime *time, + NSSArena *arenaOpt +); + +/* + * nssPKIXTime_Equal + * + */ + +NSS_EXTERN PRBool +nssPKXITime_Equal +( + NSSPKXITime *time1, + NSSPKXITime *time2, + PRStatus *statusOpt +); + +/* + * nssPKIXTime_Duplicate + * + */ + +NSS_EXTERN NSSPKIXTime * +nssPKXITime_Duplicate +( + NSSPKIXTime *time, + NSSArena *arenaOpt +); + +/* + * nssPKIXTime_Compare + * + * Usual result: -1, 0, 1 + * Returns 0 on error + */ + +NSS_EXTERN PRInt32 +nssPKIXTime_Compare +( + NSSPKIXTime *time1, + NSSPKIXTime *tiem2, + PRStatus *statusOpt +); + +#ifdef DEBUG +/* + * nssPKIXTime_verifyPointer + * + */ + +NSS_EXTERN PRStatus +nssPKIXTime_verifyPointer +( + NSSPKIXTime *time +); +#endif /* DEBUG */ + +/* + * UniqueIdentifier + * + * From RFC 2459: + * + * UniqueIdentifier ::= BIT STRING + * + */ + +/* + * SubjectPublicKeyInfo + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectPublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * subjectPublicKey BIT STRING } + * + * The private calls for the type: + * + * nssPKIXSubjectPublicKeyInfo_Decode + * nssPKIXSubjectPublicKeyInfo_Create + * nssPKIXSubjectPublicKeyInfo_Encode + * nssPKIXSubjectPublicKeyInfo_Destroy + * nssPKIXSubjectPublicKeyInfo_GetAlgorithm + * nssPKIXSubjectPublicKeyInfo_SetAlgorithm + * nssPKIXSubjectPublicKeyInfo_GetSubjectPublicKey + * nssPKIXSubjectPublicKeyInfo_SetSubjectPublicKey + * nssPKIXSubjectPublicKeyInfo_Equal + * nssPKIXSubjectPublicKeyInfo_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXSubjectPublicKeyInfo_verifyPointer + * + */ + +/* + * nssPKIXSubjectPublicKeyInfo_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXSubjectPublicKeyInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectPublicKeyInfo * +nssPKIXSubjectPublicKeyInfo_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXSubjectPublicKeyInfo_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXSubjectPublicKeyInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectPublicKeyInfo * +nssPKIXSubjectPublicKeyInfo_Create +( + NSSArena *arenaOpt, + NSSPKIXAlgorithmIdentifier *algid, + NSSItem *subjectPublicKey +); + +/* + * nssPKIXSubjectPublicKeyInfo_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectPublicKeyInfo_Destroy +( + NSSPKIXSubjectPublicKeyInfo *spki +); + +/* + * nssPKIXSubjectPublicKeyInfo_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXSubjectPublicKeyInfo_Encode +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXSubjectPublicKeyInfo_GetAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +nssPKIXSubjectPublicKeyInfo_GetAlgorithm +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSArena *arenaOpt +); + +/* + * nssPKIXSubjectPublicKeyInfo_SetAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectPublicKeyInfo_SetAlgorithm +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSPKIXAlgorithmIdentifier *algid +); + +/* + * nssPKIXSubjectPublicKeyInfo_GetSubjectPublicKey + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +nssPKIXSubjectPublicKeyInfo_GetSubjectPublicKey +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSItem *spkOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXSubjectPublicKeyInfo_SetSubjectPublicKey + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectPublicKeyInfo_SetSubjectPublicKey +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSItem *spk +); + +/* + * nssPKIXSubjectPublicKeyInfo_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXSubjectPublicKeyInfo_Equal +( + NSSPKIXSubjectPublicKeyInfo *one, + NSSPKIXSubjectPublicKeyInfo *two, + PRStatus *statusOpt +); + +/* + * nssPKIXSubjectPublicKeyInfo_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXSubjectPublicKeyInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectPublicKeyInfo * +nssPKIXSubjectPublicKeyInfo_Duplicate +( + NSSPKIXSubjectPublicKeyInfo *spki, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXSubjectPublicKeyInfo_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXSubjectPublicKeyInfo + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_PUBLIC_KEY_INFO + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectPublicKeyInfo_verifyPointer +( + NSSPKIXSubjectPublicKeyInfo *p +); +#endif /* DEBUG */ + +/* + * Extensions + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension + * + */ + +/* { FGMR } */ + +/* + * Extension + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Extension ::= SEQUENCE { + * extnID OBJECT IDENTIFIER, + * critical BOOLEAN DEFAULT FALSE, + * extnValue OCTET STRING } + * + */ + +/* { FGMR } */ + +/* + * CertificateList + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificateList ::= SEQUENCE { + * tbsCertList TBSCertList, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING } + * + * The private calls for the type: + * + * nssPKIXCertificateList_Decode + * nssPKIXCertificateList_Create + * nssPKIXCertificateList_Encode + * nssPKIXCertificateList_Destroy + * nssPKIXCertificateList_GetTBSCertList + * nssPKIXCertificateList_SetTBSCertList + * nssPKIXCertificateList_GetSignatureAlgorithm + * nssPKIXCertificateList_SetSignatureAlgorithm + * nssPKIXCertificateList_GetSignature + * nssPKIXCertificateList_SetSignature + * nssPKIXCertificateList_Equal + * nssPKIXCertificateList_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXCertificateList_verifyPointer + * + */ + +/* + * nssPKIXCertificateList_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCertificateList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateList * +nssPKIXCertificateList_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXCertificateList_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXCertificateList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateList * +nssPKIXCertificateList_Create +( + NSSArena *arenaOpt, + NSSPKIXTBSCertList *tbsCertList, + NSSPKIXAlgorithmIdentifier *sigAlg, + NSSItem *signature +); + +/* + * nssPKIXCertificateList_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificateList_Destroy +( + NSSPKIXCertificateList *certList +); + +/* + * nssPKIXCertificateList_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXCertificateList_Encode +( + NSSPKIXCertificateList *certList, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificateList_GetTBSCertList + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertList * +nssPKIXCertificateList_GetTBSCertList +( + NSSPKIXCertificateList *certList, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificateList_SetTBSCertList + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificateList_SetTBSCertList +( + NSSPKIXCertificateList *certList, + NSSPKIXTBSCertList *tbsCertList +); + +/* + * nssPKIXCertificateList_GetSignatureAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +nssPKIXCertificateList_GetSignatureAlgorithm +( + NSSPKIXCertificateList *certList, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificateList_SetSignatureAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificateList_SetSignatureAlgorithm +( + NSSPKIXCertificateList *certList, + NSSPKIXAlgorithmIdentifier *sigAlg +); + +/* + * nssPKIXCertificateList_GetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +nssPKIXCertificateList_GetSignature +( + NSSPKIXCertificateList *certList, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificateList_SetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificateList_SetSignature +( + NSSPKIXCertificateList *certList, + NSSItem *sig +); + +/* + * nssPKIXCertificateList_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXCertificateList_Equal +( + NSSPKIXCertificateList *one, + NSSPKIXCertificateList *two, + PRStatus *statusOpt +); + +/* + * nssPKIXCertificateList_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertificateList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateList * +nssPKIXCertificateList_Duplicate +( + NSSPKIXCertificateList *certList, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXCertificateList_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXCertificateList + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_LIST + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXCertificateList_verifyPointer +( + NSSPKIXCertificateList *p +); +#endif /* DEBUG */ + +/* + * TBSCertList + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TBSCertList ::= SEQUENCE { + * version Version OPTIONAL, + * -- if present, shall be v2 + * signature AlgorithmIdentifier, + * issuer Name, + * thisUpdate Time, + * nextUpdate Time OPTIONAL, + * revokedCertificates SEQUENCE OF SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * crlExtensions [0] Extensions OPTIONAL + * -- if present, shall be v2 -- } + * + * The private calls for the type: + * + * nssPKIXTBSCertList_Decode + * nssPKIXTBSCertList_Create + * nssPKIXTBSCertList_Destroy + * nssPKIXTBSCertList_Encode + * nssPKIXTBSCertList_GetVersion + * nssPKIXTBSCertList_SetVersion + * nssPKIXTBSCertList_GetSignature + * nssPKIXTBSCertList_SetSignature + * nssPKIXTBSCertList_GetIssuer + * nssPKIXTBSCertList_SetIssuer + * nssPKIXTBSCertList_GetThisUpdate + * nssPKIXTBSCertList_SetThisUpdate + * nssPKIXTBSCertList_HasNextUpdate + * nssPKIXTBSCertList_GetNextUpdate + * nssPKIXTBSCertList_SetNextUpdate + * nssPKIXTBSCertList_RemoveNextUpdate + * nssPKIXTBSCertList_GetRevokedCertificates + * nssPKIXTBSCertList_SetRevokedCertificates + * nssPKIXTBSCertList_HasCrlExtensions + * nssPKIXTBSCertList_GetCrlExtensions + * nssPKIXTBSCertList_SetCrlExtensions + * nssPKIXTBSCertList_RemoveCrlExtensions + * nssPKIXTBSCertList_Equal + * nssPKIXTBSCertList_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXTBSCertList_verifyPointer + * + */ + +/* + * nssPKIXTBSCertList_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertList * +nssPKIXTBSCertList_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTBSCertList_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_VERSION + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_PKIX_TIME + * (something for the times being out of order?) + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertList * +nssPKIXTBSCertList_Create +( + NSSArena *arenaOpt, + NSSPKIXVersion version, + NSSPKIXAlgorithmIdentifier *signature, + NSSPKIXName *issuer, + NSSPKIXTime thisUpdate, + NSSPKIXTime nextUpdateOpt, + NSSPKIXrevokedCertificates *revokedCerts, + NSSPKIXExtensions *crlExtensionsOpt +); + +/* + * nssPKIXTBSCertList_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_Destroy +( + NSSPKIXTBSCertList *certList +); + +/* + * nssPKIXTBSCertList_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTBSCertList_Encode +( + NSSPKIXTBSCertList *certList, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertList_GetVersion + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid element of the NSSPKIXVersion enumeration upon success + * NSSPKIXVersion_NSSinvalid (-1) upon failure + */ + +NSS_EXTERN NSSPKIXVersion +nssPKIXTBSCertList_GetVersion +( + NSSPKIXTBSCertList *certList +); + +/* + * nssPKIXTBSCertList_SetVersion + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_VERSION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_SetVersion +( + NSSPKIXTBSCertList *certList, + NSSPKIXVersion version +); + +/* + * nssPKIXTBSCertList_GetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +nssPKIXTBSCertList_GetSignature +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertList_SetSignature + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_SetSignature +( + NSSPKIXTBSCertList *certList, + NSSPKIXAlgorithmIdentifier *algid, +); + +/* + * nssPKIXTBSCertList_GetIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXTBSCertList_GetIssuer +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertList_SetIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_SetIssuer +( + NSSPKIXTBSCertList *certList, + NSSPKIXName *issuer +); + +/* + * nssPKIXTBSCertList_GetThisUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid NSSPKIXTime upon success + * {we need to rethink NSSPKIXTime} + */ + +NSS_EXTERN NSSPKIXTime +nssPKIXTBSCertList_GetThisUpdate +( + NSSPKIXTBSCertList *certList +); + +/* + * nssPKIXTBSCertList_SetThisUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_TOO_LARGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_SetThisUpdate +( + NSSPKIXTBSCertList *certList, + NSSPKIXTime thisUpdate +); + +/* + * nssPKIXTBSCertList_HasNextUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXTBSCertList_HasNextUpdate +( + NSSPKIXTBSCertList *certList, + PRStatus *statusOpt +); + +/* + * nssPKIXTBSCertList_GetNextUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * A valid NSSPKIXTime upon success + * {we need to rethink NSSPKIXTime} + */ + +NSS_EXTERN NSSPKIXTime +nssPKIXTBSCertList_GetNextUpdate +( + NSSPKIXTBSCertList *certList +); + +/* + * nssPKIXTBSCertList_SetNextUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_VALUE_TOO_SMALL + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_SetNextUpdate +( + NSSPKIXTBSCertList *certList, + NSSPKIXTime nextUpdate +); + +/* + * nssPKIXTBSCertList_RemoveNextUpdate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_HAS_NO_NEXT_UPDATE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_RemoveNextUpdate +( + NSSPKIXTBSCertList *certList +); + +/* + * nssPKIXTBSCertList_GetRevokedCertificates + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificates upon succes + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificates * +nssPKIXTBSCertList_GetRevokedCertificates +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertList_SetRevokedCertificates + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATES + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_SetRevokedCertificates +( + NSSPKIXTBSCertList *certList, + NSSPKIXrevokedCertificates *revoked +); + +/* + * nssPKIXTBSCertList_HasCrlExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXTBSCertList_HasCrlExtensions +( + NSSPKIXTBSCertList *certList, + PRStatus *statusOpt +); + +/* + * nssPKIXTBSCertList_GetCrlExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXExtensions upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensions * +nssPKIXTBSCertList_GetCrlExtensions +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +/* + * nssPKIXTBSCertList_SetCrlExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_SetCrlExtensions +( + NSSPKIXTBSCertList *certList, + NSSPKIXExtensions *extensions +); + +/* + * nssPKIXTBSCertList_RemoveCrlExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_HAS_NO_EXTENSIONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_RemoveCrlExtensions +( + NSSPKIXTBSCertList *certList +); + +/* + * nssPKIXTBSCertList_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXTBSCertList_Equal +( + NSSPKIXTBSCertList *one, + NSSPKIXTBSCertList *two, + PRStatus *statusOpt +); + +/* + * nssPKIXTBSCertList_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTBSCertList upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTBSCertList * +nssPKIXTBSCertList_Duplicate +( + NSSPKIXTBSCertList *certList, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXTBSCertList_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXTBSCertList + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TBS_CERT_LIST + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXTBSCertList_verifyPointer +( + NSSPKIXTBSCertList *p +); +#endif /* DEBUG */ + +/* + * revokedCertificates + * + * This is a "helper type" to simplify handling of TBSCertList objects. + * + * revokedCertificates SEQUENCE OF SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * + * The private calls for the type: + * + * nssPKIXrevokedCertificates_Decode + * nssPKIXrevokedCertificates_Create + * nssPKIXrevokedCertificates_Encode + * nssPKIXrevokedCertificates_Destroy + * nssPKIXrevokedCertificates_GetRevokedCertificateCount + * nssPKIXrevokedCertificates_GetRevokedCertificates + * nssPKIXrevokedCertificates_SetRevokedCertificates + * nssPKIXrevokedCertificates_GetRevokedCertificate + * nssPKIXrevokedCertificates_SetRevokedCertificate + * nssPKIXrevokedCertificates_InsertRevokedCertificate + * nssPKIXrevokedCertificates_AppendRevokedCertificate + * nssPKIXrevokedCertificates_RemoveRevokedCertificate + * nssPKIXrevokedCertificates_Equal + * nssPKIXrevokedCertificates_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXrevokedCertificates_verifyPointer + * + */ + +/* + * nssPKIXrevokedCertificates_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificates upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificates * +nssPKIXrevokedCertificates_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXrevokedCertificates_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificates upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificates * +nssPKIXrevokedCertificates_Create +( + NSSArena *arenaOpt, + NSSPKIXrevokedCertificate *rc1, + ... +); + +/* + * nssPKIXrevokedCertificates_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificates_Destroy +( + NSSPKIXrevokedCertificates *rcs +); + +/* + * nssPKIXrevokedCertificates_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXrevokedCertificates_Encode +( + NSSPKIXrevokedCertificates *rcs, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXrevokedCertificates_GetRevokedCertificateCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXrevokedCertificates_GetRevokedCertificateCount +( + NSSPKIXrevokedCertificates *rcs +); + +/* + * nssPKIXrevokedCertificates_GetRevokedCertificates + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXrevokedCertificate pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate ** +nssPKIXrevokedCertificates_GetRevokedCertificates +( + NSSPKIXrevokedCertificates *rcs, + NSSPKIXrevokedCertificate *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXrevokedCertificates_SetRevokedCertificates + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificates_SetRevokedCertificates +( + NSSPKIXrevokedCertificates *rcs, + NSSPKIXrevokedCertificate *rc[], + PRInt32 countOpt +); + +/* + * nssPKIXrevokedCertificates_GetRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate * +nssPKIXrevokedCertificates_GetRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXrevokedCertificates_SetRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificates_SetRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i, + NSSPKIXrevokedCertificate *rc +); + +/* + * nssPKIXrevokedCertificates_InsertRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificates_InsertRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i, + NSSPKIXrevokedCertificate *rc +); + +/* + * nssPKIXrevokedCertificates_AppendRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificates_AppendRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i, + NSSPKIXrevokedCertificate *rc +); + +/* + * nssPKIXrevokedCertificates_RemoveRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificates_RemoveRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + PRInt32 i +); + +/* + * nssPKIXrevokedCertificates_FindRevokedCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_REVOKED_CERTIFICATE + * + * Return value: + * The index of the specified revoked certificate upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +nssPKIXrevokedCertificates_FindRevokedCertificate +( + NSSPKIXrevokedCertificates *rcs, + NSSPKIXrevokedCertificate *rc +); + +/* + * nssPKIXrevokedCertificates_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXrevokedCertificates_Equal +( + NSSPKIXrevokedCertificates *one, + NSSPKIXrevokedCertificates *two, + PRStatus *statusOpt +); + +/* + * nssPKIXrevokedCertificates_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_REVOKED_CERTIFICATES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificates upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificates * +nssPKIXrevokedCertificates_Duplicate +( + NSSPKIXrevokedCertificates *rcs, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXrevokedCertificates_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXrevokedCertificates + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificates_verifyPointer +( + NSSPKIXrevokedCertificates *p +); +#endif /* DEBUG */ + +/* + * revokedCertificate + * + * This is a "helper type" to simplify handling of TBSCertList objects. + * + * SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * + * The private calls for this type: + * + * nssPKIXrevokedCertificate_Decode + * nssPKIXrevokedCertificate_Create + * nssPKIXrevokedCertificate_Encode + * nssPKIXrevokedCertificate_Destroy + * nssPKIXrevokedCertificate_GetUserCertificate + * nssPKIXrevokedCertificate_SetUserCertificate + * nssPKIXrevokedCertificate_GetRevocationDate + * nssPKIXrevokedCertificate_SetRevocationDate + * nssPKIXrevokedCertificate_HasCrlEntryExtensions + * nssPKIXrevokedCertificate_GetCrlEntryExtensions + * nssPKIXrevokedCertificate_SetCrlEntryExtensions + * nssPKIXrevokedCertificate_RemoveCrlEntryExtensions + * nssPKIXrevokedCertificate_Equal + * nssPKIXrevokedCertificate_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXrevokedCertificate_verifyPointer + * + */ + + +/* + * nssPKIXrevokedCertificate_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate * +nssPKIXrevokedCertificate_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXrevokedCertificate_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_SERIAL_NUMBER + * NSS_ERROR_INVALID_PKIX_TIME + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate * +nssPKIXrevokedCertificate_Create +( + NSSArena *arenaOpt, + NSSPKIXCertificateSerialNumber *userCertificate, + NSSPKIXTime *revocationDate, + NSSPKIXExtensions *crlEntryExtensionsOpt +); + +/* + * nssPKIXrevokedCertificate_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificate_Destroy +( + NSSPKIXrevokedCertificate *rc +); + +/* + * nssPKIXrevokedCertificate_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXrevokedCertificate_Encode +( + NSSPKIXrevokedCertificate *rc, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXrevokedCertificate_GetUserCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertificateSerialNumber upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateSerialNumber * +nssPKIXrevokedCertificate_GetUserCertificate +( + NSSPKIXrevokedCertificate *rc, + NSSArena *arenaOpt +); + +/* + * nssPKIXrevokedCertificate_SetUserCertificate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_SERIAL_NUMBER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificate_SetUserCertificate +( + NSSPKIXrevokedCertificate *rc, + NSSPKIXCertificateSerialNumber *csn +); + +/* + * nssPKIXrevokedCertificate_GetRevocationDate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTime upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTime * +nssPKIXrevokedCertificate_GetRevocationDate +( + NSSPKIXrevokedCertificate *rc, + NSSArena *arenaOpt +); + +/* + * nssPKIXrevokedCertificate_SetRevocationDate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_TIME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificate_SetRevocationDate +( + NSSPKIXrevokedCertificate *rc, + NSSPKIXTime *revocationDate +); + +/* + * nssPKIXrevokedCertificate_HasCrlEntryExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXrevokedCertificate_HasCrlEntryExtensions +( + NSSPKIXrevokedCertificate *rc, + PRStatus *statusOpt +); + +/* + * nssPKIXrevokedCertificate_GetCrlEntryExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_NO_EXTENSIONS + * + * Return value: + * A valid pointer to an NSSPKIXExtensions upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensions * +nssPKIXrevokedCertificate_GetCrlEntryExtensions +( + NSSPKIXrevokedCertificate *rc, + NSSArena *arenaOpt +); + +/* + * nssPKIXrevokedCertificate_SetCrlEntryExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_EXTENSIONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificate_SetCrlEntryExtensions +( + NSSPKIXrevokedCertificate *rc, + NSSPKIXExtensions *crlEntryExtensions +); + +/* + * nssPKIXrevokedCertificate_RemoveCrlEntryExtensions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * NSS_ERROR_NO_EXTENSIONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificate_RemoveCrlEntryExtensions +( + NSSPKIXrevokedCertificate *rc +); + +/* + * nssPKIXrevokedCertificate_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXrevokedCertificate_Equal +( + NSSPKIXrevokedCertificate *one, + NSSPKIXrevokedCertificate *two, + PRStatus *statusOpt +); + +/* + * nssPKIXrevokedCertificate_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * A valid pointer to an NSSPKIXrevokedCertificate upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXrevokedCertificate * +nssPKIXrevokedCertificate_Duplicate +( + NSSPKIXrevokedCertificate *rc, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXrevokedCertificate_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXrevokedCertificate + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REVOKED_CERTIFICATE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXrevokedCertificate_verifyPointer +( + NSSPKIXrevokedCertificate *p +); +#endif /* DEBUG */ + +/* + * AlgorithmIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * (1988 syntax) + * + * AlgorithmIdentifier ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, + * parameters ANY DEFINED BY algorithm OPTIONAL } + * -- contains a value of the type + * -- registered for use with the + * -- algorithm object identifier value + * + * The private calls for this type: + * + * nssPKIXAlgorithmIdentifier_Decode + * nssPKIXAlgorithmIdentifier_Create + * nssPKIXAlgorithmIdentifier_Encode + * nssPKIXAlgorithmIdentifier_Destroy + * nssPKIXAlgorithmIdentifier_GetAlgorithm + * nssPKIXAlgorithmIdentifier_SetAlgorithm + * nssPKIXAlgorithmIdentifier_GetParameters + * nssPKIXAlgorithmIdentifier_SetParameters + * nssPKIXAlgorithmIdentifier_Compare + * nssPKIXAlgorithmIdentifier_Duplicate + * { algorithm-specific parameter types and accessors ? } + * + * In debug builds, the following call is available: + * + * nssPKIXAlgorithmIdentifier_verifyPointer + * + */ + +/* + * nssPKIXAlgorithmIdentifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +nssPKIXAlgorithmIdentifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXAlgorithmIdentifier_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_POINTER + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +nssPKIXAlgorithmIdentifier_Create +( + NSSArena *arenaOpt, + NSSOID *algorithm, + NSSItem *parameters +); + +/* + * nssPKIXAlgorithmIdentifier_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAlgorithmIdentifier_Destroy +( + NSSPKIXAlgorithmIdentifier *algid +); + +/* + * nssPKIXAlgorithmIdentifier_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXAlgorithmIdentifier_Encode +( + NSSPKIXAlgorithmIdentifier *algid, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAlgorithmIdentifier_GetAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSOID pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSOID * +nssPKIXAlgorithmIdentifier_GetAlgorithm +( + NSSPKIXAlgorithmIdentifier *algid +); + +/* + * nssPKIXAlgorithmIdentifier_SetAlgorithm + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_OID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAlgorithmIdentifier_SetAlgorithm +( + NSSPKIXAlgorithmIdentifier *algid, + NSSOID *algorithm +); + +/* + * nssPKIXAlgorithmIdentifier_GetParameters + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +nssPKIXAlgorithmIdentifier_GetParameters +( + NSSPKIXAlgorithmIdentifier *algid, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAlgorithmIdentifier_SetParameters + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_POINTER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAlgorithmIdentifier_SetParameters +( + NSSPKIXAlgorithmIdentifier *algid, + NSSItem *parameters +); + +/* + * nssPKIXAlgorithmIdentifier_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXAlgorithmIdentifier_Equal +( + NSSPKIXAlgorithmIdentifier *algid1, + NSSPKIXAlgorithmIdentifier *algid2, + PRStatus *statusOpt +); + +/* + * nssPKIXAlgorithmIdentifier_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAlgorithmIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAlgorithmIdentifier * +nssPKIXAlgorithmIdentifier_Duplicate +( + NSSPKIXAlgorithmIdentifier *algid, + NSSArena *arenaOpt +); + +/* + * { algorithm-specific parameter types and accessors ? } + */ + +#ifdef DEBUG +/* + * nssPKIXAlgorithmIdentifier_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXAlgorithmIdentifier + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ALGORITHM_IDENTIFIER + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXAlgorithmIdentifier_verifyPointer +( + NSSPKIXAlgorithmIdentifier *p +); +#endif /* DEBUG */ + +/* + * ORAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ORAddress ::= SEQUENCE { + * built-in-standard-attributes BuiltInStandardAttributes, + * built-in-domain-defined-attributes + * BuiltInDomainDefinedAttributes OPTIONAL, + * -- see also teletex-domain-defined-attributes + * extension-attributes ExtensionAttributes OPTIONAL } + * -- The OR-address is semantically absent from the OR-name if the + * -- built-in-standard-attribute sequence is empty and the + * -- built-in-domain-defined-attributes and extension-attributes are + * -- both omitted. + * + * The private calls for this type: + * + * nssPKIXORAddress_Decode + * nssPKIXORAddress_Create + * nssPKIXORAddress_Destroy + * nssPKIXORAddress_Encode + * nssPKIXORAddress_GetBuiltInStandardAttributes + * nssPKIXORAddress_SetBuiltInStandardAttributes + * nssPKIXORAddress_HasBuiltInDomainDefinedAttributes + * nssPKIXORAddress_GetBuiltInDomainDefinedAttributes + * nssPKIXORAddress_SetBuiltInDomainDefinedAttributes + * nssPKIXORAddress_RemoveBuiltInDomainDefinedAttributes + * nssPKIXORAddress_HasExtensionsAttributes + * nssPKIXORAddress_GetExtensionsAttributes + * nssPKIXORAddress_SetExtensionsAttributes + * nssPKIXORAddress_RemoveExtensionsAttributes + * nssPKIXORAddress_Equal + * nssPKIXORAddress_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXORAddress_verifyPointer + * + */ + +/* + * nssPKIXORAddress_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXORAddres upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXORAddress * +nssPKIXORAddress_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXORAddress_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSIONS_ATTRIBUTES + * + * Return value: + * A valid pointer to an NSSPKIXORAddres upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXORAddress * +nssPKIXORAddress_Create +( + NSSArena *arenaOpt, + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXBuiltInDomainDefinedAttributes *biddaOpt, + NSSPKIXExtensionAttributes *eaOpt +); + +/* + * nssPKIXORAddress_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXORAddress_Destroy +( + NSSPKIXORAddress *ora +); + +/* + * nssPKIXORAddress_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXORAddress_Encode +( + NSSPKIXORAddress *ora, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXORAddress_GetBuiltInStandardAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInStandardAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInStandardAttributes * +nssPKIXORAddress_GetBuiltInStandardAttributes +( + NSSPKIXORAddress *ora, + NSSArena *arenaOpt +); + +/* + * nssPKIXORAddress_SetBuiltInStandardAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXORAddress_SetBuiltInStandardAttributes +( + NSSPKIXORAddress *ora, + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXORAddress_HasBuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXORAddress_HasBuiltInDomainDefinedAttributes +( + NSSPKIXORAddress *ora, + PRStatus *statusOpt +); + +/* + * nssPKIXORAddress_GetBuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_NO_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttributes * +nssPKIXORAddress_GetBuiltInDomainDefinedAttributes +( + NSSPKIXORAddress *ora, + NSSArena *arenaOpt +); + +/* + * nssPKIXORAddress_SetBuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXORAddress_SetBuiltInDomainDefinedAttributes +( + NSSPKIXORAddress *ora, + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXORAddress_RemoveBuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXORAddress_RemoveBuiltInDomainDefinedAttributes +( + NSSPKIXORAddress *ora +); + +/* + * nssPKIXORAddress_HasExtensionsAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXORAddress_HasExtensionsAttributes +( + NSSPKIXORAddress *ora, + PRStatus *statusOpt +); + +/* + * nssPKIXORAddress_GetExtensionsAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_NO_EXTENSION_ATTRIBUTES + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributes * +nssPKIXORAddress_GetExtensionsAttributes +( + NSSPKIXORAddress *ora, + NSSArena *arenaOpt +); + +/* + * nssPKIXORAddress_SetExtensionsAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXORAddress_SetExtensionsAttributes +( + NSSPKIXORAddress *ora, + NSSPKIXExtensionAttributes *eaOpt +); + +/* + * nssPKIXORAddress_RemoveExtensionsAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_NO_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXORAddress_RemoveExtensionsAttributes +( + NSSPKIXORAddress *ora +); + +/* + * nssPKIXORAddress_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXORAddress_Equal +( + NSSPKIXORAddress *ora1, + NSSPKIXORAddress *ora2, + PRStatus *statusOpt +); + +/* + * nssPKIXORAddress_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXORAddres upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXORAddress * +nssPKIXORAddress_Duplicate +( + NSSPKIXORAddress *ora, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXORAddress_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXORAddress + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXORAddress_verifyPointer +( + NSSPKIXORAddress *p +); +#endif /* DEBUG */ + +/* + * BuiltInStandardAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInStandardAttributes ::= SEQUENCE { + * country-name CountryName OPTIONAL, + * administration-domain-name AdministrationDomainName OPTIONAL, + * network-address [0] NetworkAddress OPTIONAL, + * -- see also extended-network-address + * terminal-identifier [1] TerminalIdentifier OPTIONAL, + * private-domain-name [2] PrivateDomainName OPTIONAL, + * organization-name [3] OrganizationName OPTIONAL, + * -- see also teletex-organization-name + * numeric-user-identifier [4] NumericUserIdentifier OPTIONAL, + * personal-name [5] PersonalName OPTIONAL, + * -- see also teletex-personal-name + * organizational-unit-names [6] OrganizationalUnitNames OPTIONAL + * -- see also teletex-organizational-unit-names -- } + * + * The private calls for this type: + * + * nssPKIXBuiltInStandardAttributes_Decode + * nssPKIXBuiltInStandardAttributes_Create + * nssPKIXBuiltInStandardAttributes_Destroy + * nssPKIXBuiltInStandardAttributes_Encode + * nssPKIXBuiltInStandardAttributes_HasCountryName + * nssPKIXBuiltInStandardAttributes_GetCountryName + * nssPKIXBuiltInStandardAttributes_SetCountryName + * nssPKIXBuiltInStandardAttributes_RemoveCountryName + * nssPKIXBuiltInStandardAttributes_HasAdministrationDomainName + * nssPKIXBuiltInStandardAttributes_GetAdministrationDomainName + * nssPKIXBuiltInStandardAttributes_SetAdministrationDomainName + * nssPKIXBuiltInStandardAttributes_RemoveAdministrationDomainName + * nssPKIXBuiltInStandardAttributes_HasNetworkAddress + * nssPKIXBuiltInStandardAttributes_GetNetworkAddress + * nssPKIXBuiltInStandardAttributes_SetNetworkAddress + * nssPKIXBuiltInStandardAttributes_RemoveNetworkAddress + * nssPKIXBuiltInStandardAttributes_HasTerminalIdentifier + * nssPKIXBuiltInStandardAttributes_GetTerminalIdentifier + * nssPKIXBuiltInStandardAttributes_SetTerminalIdentifier + * nssPKIXBuiltInStandardAttributes_RemoveTerminalIdentifier + * nssPKIXBuiltInStandardAttributes_HasPrivateDomainName + * nssPKIXBuiltInStandardAttributes_GetPrivateDomainName + * nssPKIXBuiltInStandardAttributes_SetPrivateDomainName + * nssPKIXBuiltInStandardAttributes_RemovePrivateDomainName + * nssPKIXBuiltInStandardAttributes_HasOrganizationName + * nssPKIXBuiltInStandardAttributes_GetOrganizationName + * nssPKIXBuiltInStandardAttributes_SetOrganizationName + * nssPKIXBuiltInStandardAttributes_RemoveOrganizationName + * nssPKIXBuiltInStandardAttributes_HasNumericUserIdentifier + * nssPKIXBuiltInStandardAttributes_GetNumericUserIdentifier + * nssPKIXBuiltInStandardAttributes_SetNumericUserIdentifier + * nssPKIXBuiltInStandardAttributes_RemoveNumericUserIdentifier + * nssPKIXBuiltInStandardAttributes_HasPersonalName + * nssPKIXBuiltInStandardAttributes_GetPersonalName + * nssPKIXBuiltInStandardAttributes_SetPersonalName + * nssPKIXBuiltInStandardAttributes_RemovePersonalName + * nssPKIXBuiltInStandardAttributes_HasOrganizationLUnitNames + * nssPKIXBuiltInStandardAttributes_GetOrganizationLUnitNames + * nssPKIXBuiltInStandardAttributes_SetOrganizationLUnitNames + * nssPKIXBuiltInStandardAttributes_RemoveOrganizationLUnitNames + * nssPKIXBuiltInStandardAttributes_Equal + * nssPKIXBuiltInStandardAttributes_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXBuiltInStandardAttributes_verifyPointer + * + */ + +/* + * nssPKIXBuiltInStandardAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInStandardAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInStandardAttributes * +nssPKIXBuiltInStandardAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXBuiltInStandardAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_COUNTRY_NAME + * NSS_ERROR_INVALID_PKIX_ADMINISTRATION_DOMAIN_NAME + * NSS_ERROR_INVALID_PKIX_NETWORK_ADDRESS + * NSS_ERROR_INVALID_PKIX_TERMINAL_IDENTIFIER + * NSS_ERROR_INVALID_PKIX_PRIVATE_DOMAIN_NAME + * NSS_ERROR_INVALID_PKIX_ORGANIZATION_NAME + * NSS_ERROR_INVALID_PKIX_NUMERIC_USER_IDENTIFIER + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInStandardAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInStandardAttributes * +nssPKIXBuiltInStandardAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXCountryName *countryNameOpt, + NSSPKIXAdministrationDomainName *administrationDomainNameOpt, + NSSPKIXNetworkAddress *networkAddressOpt, + NSSPKIXTerminalIdentifier *terminalIdentifierOpt, + NSSPKIXPrivateDomainName *privateDomainNameOpt, + NSSPKIXOrganizationName *organizationNameOpt, + NSSPKIXNumericUserIdentifier *numericUserIdentifierOpt, + NSSPKIXPersonalName *personalNameOpt, + NSSPKIXOrganizationalUnitNames *organizationalUnitNamesOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_Destroy +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXBuiltInStandardAttributes_Encode +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_HasCountryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasCountryName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetCountryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCountryName * +nssPKIXBuiltInStandardAttributes_GetCountryName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetCountryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_COUNTRY_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetCountryName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXCountryName *countryName +); + +/* + * nssPKIXBuiltInStandardAttributes_RemoveCountryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_COUNTRY_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemoveCountryName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_HasAdministrationDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasAdministrationDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetAdministrationDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAdministrationDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAdministrationDomainName * +nssPKIXBuiltInStandardAttributes_GetAdministrationDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetAdministrationDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ADMINISTRATION_DOMAIN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetAdministrationDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXAdministrationDomainName *administrationDomainName +); + +/* + * nssPKIXBuiltInStandardAttributes_RemoveAdministrationDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_ADMINISTRATION_DOMAIN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemoveAdministrationDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_HasNetworkAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasNetworkAddress +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetNetworkAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNetworkAddress * +nssPKIXBuiltInStandardAttributes_GetNetworkAddress +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetNetworkAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_NETWORK_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetNetworkAddress +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXNetworkAddress *networkAddress +); + +/* + * nssPKIXBuiltInStandardAttributes_RemoveNetworkAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_NETWORK_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemoveNetworkAddress +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_HasTerminalIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasTerminalIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetTerminalIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTerminalIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTerminalIdentifier * +nssPKIXBuiltInStandardAttributes_GetTerminalIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetTerminalIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_TERMINAL_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetTerminalIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXTerminalIdentifier *terminalIdentifier +); + +/* + * nssPKIXBuiltInStandardAttributes_RemoveTerminalIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_TERMINAL_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemoveTerminalIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_HasPrivateDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasPrivateDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetPrivateDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateDomainName * +nssPKIXBuiltInStandardAttributes_GetPrivateDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetPrivateDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_PRIVATE_DOMAIN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetPrivateDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXPrivateDomainName *privateDomainName +); + +/* + * nssPKIXBuiltInStandardAttributes_RemovePrivateDomainName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_PRIVATE_DOMAIN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemovePrivateDomainName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_HasOrganizationName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasOrganizationName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetOrganizationName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationName * +nssPKIXBuiltInStandardAttributes_GetOrganizationName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetOrganizationName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ORGANIZATION_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetOrganizationName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXOrganizationName *organizationName +); + +/* + * nssPKIXBuiltInStandardAttributes_RemoveOrganizationName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_ORGANIZATION_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemoveOrganizationName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_HasNumericUserIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasNumericUserIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetNumericUserIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNumericUserIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNumericUserIdentifier * +nssPKIXBuiltInStandardAttributes_GetNumericUserIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetNumericUserIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_NUMERIC_USER_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetNumericUserIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXNumericUserIdentifier *numericUserIdentifier +); + +/* + * nssPKIXBuiltInStandardAttributes_RemoveNumericUserIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_NUMERIC_USER_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemoveNumericUserIdentifier +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_HasPersonalName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasPersonalName +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetPersonalName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPersonalName * +nssPKIXBuiltInStandardAttributes_GetPersonalName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetPersonalName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetPersonalName +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXPersonalName *personalName +); + +/* + * nssPKIXBuiltInStandardAttributes_RemovePersonalName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemovePersonalName +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_HasOrganizationLUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_HasOrganizationLUnitNames +( + NSSPKIXBuiltInStandardAttributes *bisa, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_GetOrganizationLUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitNames * +nssPKIXBuiltInStandardAttributes_GetOrganizationLUnitNames +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_SetOrganizationLUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_SetOrganizationLUnitNames +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSPKIXOrganizationalUnitNames *organizationalUnitNames +); + +/* + * nssPKIXBuiltInStandardAttributes_RemoveOrganizationLUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_RemoveOrganizationLUnitNames +( + NSSPKIXBuiltInStandardAttributes *bisa +); + +/* + * nssPKIXBuiltInStandardAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInStandardAttributes_Equal +( + NSSPKIXBuiltInStandardAttributes *bisa1, + NSSPKIXBuiltInStandardAttributes *bisa2, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInStandardAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInStandardAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInStandardAttributes * +nssPKIXBuiltInStandardAttributes_Duplicate +( + NSSPKIXBuiltInStandardAttributes *bisa, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXBuiltInStandardAttributes_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXBuiltInStandardAttributes + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_STANDARD_ATTRIBUTES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInStandardAttributes_verifyPointer +( + NSSPKIXBuiltInStandardAttributes *p +); +#endif /* DEBUG */ + +/* + * CountryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CountryName ::= [APPLICATION 1] CHOICE { + * x121-dcc-code NumericString + * (SIZE (ub-country-name-numeric-length)), + * iso-3166-alpha2-code PrintableString + * (SIZE (ub-country-name-alpha-length)) } + * + * The private calls for this type: + * + * nssPKIXCountryName_Decode + * nssPKIXCountryName_CreateFromUTF8 + * nssPKIXCountryName_Encode + * + */ + +/* + * nssPKIXCountryName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCountryName * +nssPKIXCountryName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXCountryName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCountryName * +nssPKIXCountryName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXCountryName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_COUNTRY_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXCountryName_Encode +( + NSSPKIXCountryName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * AdministrationDomainName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AdministrationDomainName ::= [APPLICATION 2] CHOICE { + * numeric NumericString (SIZE (0..ub-domain-name-length)), + * printable PrintableString (SIZE (0..ub-domain-name-length)) } + * + * The private calls for this type: + * + * nssPKIXAdministrationDomainName_Decode + * nssPKIXAdministrationDomainName_CreateFromUTF8 + * nssPKIXAdministrationDomainName_Encode + * + */ + +/* + * nssPKIXAdministrationDomainName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAdministrationDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAdministrationDomainName * +nssPKIXAdministrationDomainName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXAdministrationDomainName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAdministrationDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAdministrationDomainName * +nssPKIXAdministrationDomainName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXAdministrationDomainName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ADMINISTRATION_DOMAIN_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXAdministrationDomainName_Encode +( + NSSPKIXAdministrationDomainName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * X121Address + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * X121Address ::= NumericString (SIZE (1..ub-x121-address-length)) + * + * The private calls for this type: + * + * nssPKIXX121Address_Decode + * nssPKIXX121Address_CreateFromUTF8 + * nssPKIXX121Address_Encode + * + */ + +/* + * nssPKIXX121Address_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX121Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX121Address * +nssPKIXX121Address_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXX121Address_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXX121Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXX121Address * +nssPKIXX121Address_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXX121Address_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_X121_ADDRESS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXX121Address_Encode +( + NSSPKIXX121Address *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NetworkAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NetworkAddress ::= X121Address -- see also extended-network-address + * + * The private calls for this type: + * + * nssPKIXNetworkAddress_Decode + * nssPKIXNetworkAddress_CreateFromUTF8 + * nssPKIXNetworkAddress_Encode + * + */ + +/* + * nssPKIXNetworkAddress_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNetworkAddress * +nssPKIXNetworkAddress_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXNetworkAddress_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNetworkAddress * +nssPKIXNetworkAddress_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXNetworkAddress_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXNetworkAddress_Encode +( + NSSPKIXNetworkAddress *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * TerminalIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length)) + * + * The private calls for this type: + * + * nssPKIXTerminalIdentifier_Decode + * nssPKIXTerminalIdentifier_CreateFromUTF8 + * nssPKIXTerminalIdentifier_Encode + * + */ + +/* + * nssPKIXTerminalIdentifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTerminalIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTerminalIdentifier * +nssPKIXTerminalIdentifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTerminalIdentifier_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTerminalIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTerminalIdentifier * +nssPKIXTerminalIdentifier_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXTerminalIdentifier_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TERMINAL_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTerminalIdentifier_Encode +( + NSSPKIXTerminalIdentifier *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PrivateDomainName + * + * -- fgmr comments -- + * + * PrivateDomainName ::= CHOICE { + * numeric NumericString (SIZE (1..ub-domain-name-length)), + * printable PrintableString (SIZE (1..ub-domain-name-length)) } + * + * The private calls for this type: + * + * nssPKIXPrivateDomainName_Decode + * nssPKIXPrivateDomainName_CreateFromUTF8 + * nssPKIXPrivateDomainName_Encode + * + */ + +/* + * nssPKIXPrivateDomainName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateDomainName * +nssPKIXPrivateDomainName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPrivateDomainName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateDomainName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateDomainName * +nssPKIXPrivateDomainName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXPrivateDomainName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_DOMAIN_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPrivateDomainName_Encode +( + NSSPKIXPrivateDomainName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * OrganizationName + * + * -- fgmr comments -- + * + * OrganizationName ::= PrintableString + * (SIZE (1..ub-organization-name-length)) + * + * The private calls for this type: + * + * nssPKIXOrganizationName_Decode + * nssPKIXOrganizationName_CreateFromUTF8 + * nssPKIXOrganizationName_Encode + * + */ + +/* + * nssPKIXOrganizationName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationName * +nssPKIXOrganizationName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXOrganizationName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationName * +nssPKIXOrganizationName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXOrganizationName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATION_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXOrganizationName_Encode +( + NSSPKIXOrganizationName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * NumericUserIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NumericUserIdentifier ::= NumericString + * (SIZE (1..ub-numeric-user-id-length)) + * + * The private calls for this type: + * + * nssPKIXNumericUserIdentifier_Decode + * nssPKIXNumericUserIdentifier_CreateFromUTF8 + * nssPKIXNumericUserIdentifier_Encode + * + */ + +/* + * nssPKIXNumericUserIdentifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNumericUserIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNumericUserIdentifier * +nssPKIXNumericUserIdentifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXNumericUserIdentifier_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_UTF8 + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNumericUserIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNumericUserIdentifier * +nssPKIXNumericUserIdentifier_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXNumericUserIdentifier_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NUMERIC_USER_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXNumericUserIdentifier_Encode +( + NSSPKIXNumericUserIdentifier *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PersonalName ::= SET { + * surname [0] PrintableString (SIZE (1..ub-surname-length)), + * given-name [1] PrintableString + * (SIZE (1..ub-given-name-length)) OPTIONAL, + * initials [2] PrintableString (SIZE (1..ub-initials-length)) OPTIONAL, + * generation-qualifier [3] PrintableString + * (SIZE (1..ub-generation-qualifier-length)) OPTIONAL } + * + * The private calls for this type: + * + * nssPKIXPersonalName_Decode + * nssPKIXPersonalName_Create + * nssPKIXPersonalName_Destroy + * nssPKIXPersonalName_Encode + * nssPKIXPersonalName_GetSurname + * nssPKIXPersonalName_SetSurname + * nssPKIXPersonalName_HasGivenName + * nssPKIXPersonalName_GetGivenName + * nssPKIXPersonalName_SetGivenName + * nssPKIXPersonalName_RemoveGivenName + * nssPKIXPersonalName_HasInitials + * nssPKIXPersonalName_GetInitials + * nssPKIXPersonalName_SetInitials + * nssPKIXPersonalName_RemoveInitials + * nssPKIXPersonalName_HasGenerationQualifier + * nssPKIXPersonalName_GetGenerationQualifier + * nssPKIXPersonalName_SetGenerationQualifier + * nssPKIXPersonalName_RemoveGenerationQualifier + * nssPKIXPersonalName_Equal + * nssPKIXPersonalName_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXPersonalName_verifyPointer + * + */ + +/* + * nssPKIXPersonalName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPersonalName * +nssPKIXPersonalName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPersonalName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPersonalName * +nssPKIXPersonalName_Create +( + NSSArena *arenaOpt, + NSSUTF8 *surname, + NSSUTF8 *givenNameOpt, + NSSUTF8 *initialsOpt, + NSSUTF8 *generationQualifierOpt +); + +/* + * nssPKIXPersonalName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_Destroy +( + NSSPKIXPersonalName *personalName +); + +/* + * nssPKIXPersonalName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPersonalName_Encode +( + NSSPKIXPersonalName *personalName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXPersonalName_GetSurname + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXPersonalName_GetSurname +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXPersonalName_SetSurname + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_SetSurname +( + NSSPKIXPersonalName *personalName, + NSSUTF8 *surname +); + +/* + * nssPKIXPersonalName_HasGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPersonalName_HasGivenName +( + NSSPKIXPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * nssPKIXPersonalName_GetGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_GIVEN_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXPersonalName_GetGivenName +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXPersonalName_SetGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_SetGivenName +( + NSSPKIXPersonalName *personalName, + NSSUTF8 *givenName +); + +/* + * nssPKIXPersonalName_RemoveGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_HAS_NO_GIVEN_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_RemoveGivenName +( + NSSPKIXPersonalName *personalName +); + +/* + * nssPKIXPersonalName_HasInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPersonalName_HasInitials +( + NSSPKIXPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * nssPKIXPersonalName_GetInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXPersonalName_GetInitials +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXPersonalName_SetInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_SetInitials +( + NSSPKIXPersonalName *personalName, + NSSUTF8 *initials +); + +/* + * nssPKIXPersonalName_RemoveInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_RemoveInitials +( + NSSPKIXPersonalName *personalName +); + +/* + * nssPKIXPersonalName_HasGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPersonalName_HasGenerationQualifier +( + NSSPKIXPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * nssPKIXPersonalName_GetGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXPersonalName_GetGenerationQualifier +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXPersonalName_SetGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_SetGenerationQualifier +( + NSSPKIXPersonalName *personalName, + NSSUTF8 *generationQualifier +); + +/* + * nssPKIXPersonalName_RemoveGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_RemoveGenerationQualifier +( + NSSPKIXPersonalName *personalName +); + +/* + * nssPKIXPersonalName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXPersonalName_Equal +( + NSSPKIXPersonalName *personalName1, + NSSPKIXPersonalName *personalName2, + PRStatus *statusOpt +); + +/* + * nssPKIXPersonalName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSPKIXPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPersonalName * +nssPKIXPersonalName_Duplicate +( + NSSPKIXPersonalName *personalName, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXPersonalName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXPersonalName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXPersonalName_verifyPointer +( + NSSPKIXPersonalName *p +); +#endif /* DEBUG */ + +/* + * OrganizationalUnitNames + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units) + * OF OrganizationalUnitName + * + * The private calls for the type: + * + * nssPKIXOrganizationalUnitNames_Decode + * nssPKIXOrganizationalUnitNames_Create + * nssPKIXOrganizationalUnitNames_Destroy + * nssPKIXOrganizationalUnitNames_Encode + * nssPKIXOrganizationalUnitNames_GetOrganizationalUnitNameCount + * nssPKIXOrganizationalUnitNames_GetOrganizationalUnitNames + * nssPKIXOrganizationalUnitNames_SetOrganizationalUnitNames + * nssPKIXOrganizationalUnitNames_GetOrganizationalUnitName + * nssPKIXOrganizationalUnitNames_SetOrganizationalUnitName + * nssPKIXOrganizationalUnitNames_InsertOrganizationalUnitName + * nssPKIXOrganizationalUnitNames_AppendOrganizationalUnitName + * nssPKIXOrganizationalUnitNames_RemoveOrganizationalUnitName + * nssPKIXOrganizationalUnitNames_FindOrganizationalUnitName + * nssPKIXOrganizationalUnitNames_Equal + * nssPKIXOrganizationalUnitNames_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXOrganizationalUnitNames_verifyPointer + * + */ + +/* + * nssPKIXOrganizationalUnitNames_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitNames * +nssPKIXOrganizationalUnitNames_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXOrganizationalUnitNames_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitNames * +nssPKIXOrganizationalUnitNames_Create +( + NSSArena *arenaOpt, + NSSPKIXOrganizationalUnitName *ou1, + ... +); + +/* + * nssPKIXOrganizationalUnitNames_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXOrganizationalUnitNames_Destroy +( + NSSPKIXOrganizationalUnitNames *ous +); + +/* + * nssPKIXOrganizationalUnitNames_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXOrganizationalUnitNames_Encode +( + NSSPKIXOrganizationalUnitNames *ous, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXOrganizationalUnitNames_GetOrganizationalUnitNameCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXOrganizationalUnitNames_GetOrganizationalUnitNameCount +( + NSSPKIXOrganizationalUnitNames *ous +); + +/* + * nssPKIXOrganizationalUnitNames_GetOrganizationalUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXOrganizationalUnitName + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitName ** +nssPKIXOrganizationalUnitNames_GetOrganizationalUnitNames +( + NSSPKIXOrganizationalUnitNames *ous, + NSSPKIXOrganizationalUnitName *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXOrganizationalUnitNames_SetOrganizationalUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXOrganizationalUnitNames_SetOrganizationalUnitNames +( + NSSPKIXOrganizationalUnitNames *ous, + NSSPKIXOrganizationalUnitName *ou[], + PRInt32 count +); + +/* + * nssPKIXOrganizationalUnitNames_GetOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitName * +nssPKIXOrganizationalUnitNames_GetOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXOrganizationalUnitNames_SetOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXOrganizationalUnitNames_SetOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + PRInt32 i, + NSSPKIXOrganizationalUnitName *ou +); + +/* + * nssPKIXOrganizationalUnitNames_InsertOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXOrganizationalUnitNames_InsertOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + PRInt32 i, + NSSPKIXOrganizationalUnitName *ou +); + +/* + * nssPKIXOrganizationalUnitNames_AppendOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXOrganizationalUnitNames_AppendOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + NSSPKIXOrganizationalUnitName *ou +); + +/* + * nssPKIXOrganizationalUnitNames_RemoveOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXOrganizationalUnitNames_RemoveOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + PRInt32 i +); + +/* + * nssPKIXOrganizationalUnitNames_FindOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * The index of the specified revoked certificate upon success + * -1 upon failure + */ + +NSS_EXTERN PRIntn +nssPKIXOrganizationalUnitNames_FindOrganizationalUnitName +( + NSSPKIXOrganizationalUnitNames *ous, + NSSPKIXOrganizationalUnitName *ou +); + +/* + * nssPKIXOrganizationalUnitNames_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXOrganizationalUnitNames_Equal +( + NSSPKIXOrganizationalUnitNames *ous1, + NSSPKIXOrganizationalUnitNames *ous2, + PRStatus *statusOpt +); + +/* + * nssPKIXOrganizationalUnitNames_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitNames * +nssPKIXOrganizationalUnitNames_Duplicate +( + NSSPKIXOrganizationalUnitNames *ous, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXOrganizationalUnitNames_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXOrganizationalUnitNames + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXOrganizationalUnitNames_verifyPointer +( + NSSPKIXOrganizationalUnitNames *p +); +#endif /* DEBUG */ + +/* + * OrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * OrganizationalUnitName ::= PrintableString (SIZE + * (1..ub-organizational-unit-name-length)) + * + * The private calls for this type: + * + * nssPKIXOrganizationalUnitName_Decode + * nssPKIXOrganizationalUnitName_CreateFromUTF8 + * nssPKIXOrganizationalUnitName_Encode + * + */ + +/* + * nssPKIXOrganizationalUnitName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitName * +nssPKIXOrganizationalUnitName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXOrganizationalUnitName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXOrganizationalUnitName * +nssPKIXOrganizationalUnitName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXOrganizationalUnitName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXOrganizationalUnitName_Encode +( + NSSPKIXOrganizationalUnitName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * BuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE + * (1..ub-domain-defined-attributes) OF + * BuiltInDomainDefinedAttribute + * + * The private calls for this type: + * + * nssPKIXBuiltInDomainDefinedAttributes_Decode + * nssPKIXBuiltInDomainDefinedAttributes_Create + * nssPKIXBuiltInDomainDefinedAttributes_Destroy + * nssPKIXBuiltInDomainDefinedAttributes_Encode + * nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributeCount + * nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributes + * nssPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttributes + * nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttribute + * nssPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttribute + * nssPKIXBuiltInDomainDefinedAttributes_InsertBuiltIndomainDefinedAttribute + * nssPKIXBuiltInDomainDefinedAttributes_AppendBuiltIndomainDefinedAttribute + * nssPKIXBuiltInDomainDefinedAttributes_RemoveBuiltIndomainDefinedAttribute + * nssPKIXBuiltInDomainDefinedAttributes_Equal + * nssPKIXBuiltInDomainDefinedAttributes_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXBuiltInDomainDefinedAttributes_verifyPointer + * + */ + +/* + * nssPKIXBuiltInDomainDefinedAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttributes * +nssPKIXBuiltInDomainDefinedAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttributes * +nssPKIXBuiltInDomainDefinedAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXBuiltInDomainDefinedAttribute *bidda1, + ... +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttributes_Destroy +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXBuiltInDomainDefinedAttributes_Encode +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributeCount +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXBuiltInDomainDefinedAttribute + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute ** +nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttributes +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSPKIXBuiltInDomainDefinedAttribut *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttributes +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSPKIXBuiltInDomainDefinedAttribut *bidda[], + PRInt32 count +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute * +nssPKIXBuiltInDomainDefinedAttributes_GetBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttributes_SetBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + PRInt32 i, + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_InsertBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttributes_InsertBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + PRInt32 i, + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_AppendBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttributes_AppendBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_RemoveBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttributes_RemoveBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + PRInt32 i +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_FindBuiltIndomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * The index of the specified revoked certificate upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +nssPKIXBuiltInDomainDefinedAttributes_FindBuiltIndomainDefinedAttribute +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInDomainDefinedAttributes_Equal +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas1, + NSSPKIXBuiltInDomainDefinedAttributes *biddas2, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInDomainDefinedAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttributes * +nssPKIXBuiltInDomainDefinedAttributes_Duplicate +( + NSSPKIXBuiltInDomainDefinedAttributes *biddas, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXBuiltInDomainDefinedAttributes_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXBuiltInDomainDefinedAttributes + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttributes_verifyPointer +( + NSSPKIXBuiltInDomainDefinedAttributes *p +); +#endif /* DEBUG */ + +/* + * BuiltInDomainDefinedAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInDomainDefinedAttribute ::= SEQUENCE { + * type PrintableString (SIZE + * (1..ub-domain-defined-attribute-type-length)), + * value PrintableString (SIZE + * (1..ub-domain-defined-attribute-value-length))} + * + * The private calls for this type: + * + * nssPKIXBuiltInDomainDefinedAttribute_Decode + * nssPKIXBuiltInDomainDefinedAttribute_Create + * nssPKIXBuiltInDomainDefinedAttribute_Destroy + * nssPKIXBuiltInDomainDefinedAttribute_Encode + * nssPKIXBuiltInDomainDefinedAttribute_GetType + * nssPKIXBuiltInDomainDefinedAttribute_SetType + * nssPKIXBuiltInDomainDefinedAttribute_GetValue + * nssPKIXBuiltInDomainDefinedAttribute_SetValue + * nssPKIXBuiltInDomainDefinedAttribute_Equal + * nssPKIXBuiltInDomainDefinedAttribute_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXBuiltInDomainDefinedAttribute_verifyPointer + * + */ + +/* + * nssPKIXBuiltInDomainDefinedAttribute_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute * +nssPKIXBuiltInDomainDefinedAttribute_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute * +nssPKIXBuiltInDomainDefinedAttribute_Create +( + NSSArena *arenaOpt, + NSSUTF8 *type, + NSSUTF8 *value +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttribute_Destroy +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXBuiltInDomainDefinedAttribute_Encode +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_GetType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXBuiltInDomainDefinedAttribute_GetType +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_SetType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttribute_SetType +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSUTF8 *type +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_GetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXBuiltInDomainDefinedAttribute_GetValue +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSArena *arenaOpt +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_SetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttribute_SetValue +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSUTF8 *value +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXBuiltInDomainDefinedAttribute_Equal +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda1, + NSSPKIXBuiltInDomainDefinedAttribute *bidda2, + PRStatus *statusOpt +); + +/* + * nssPKIXBuiltInDomainDefinedAttribute_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBuiltInDomainDefinedAttribute * +nssPKIXBuiltInDomainDefinedAttribute_Duplicate +( + NSSPKIXBuiltInDomainDefinedAttribute *bidda, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXBuiltInDomainDefinedAttribute_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXBuiltInDomainDefinedAttribute + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BUILT_IN_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXBuiltInDomainDefinedAttribute_verifyPointer +( + NSSPKIXBuiltInDomainDefinedAttribute *p +); +#endif /* DEBUG */ + +/* + * ExtensionAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF + * ExtensionAttribute + * + * The private calls for this type: + * + * nssPKIXExtensionAttributes_Decode + * nssPKIXExtensionAttributes_Create + * nssPKIXExtensionAttributes_Destroy + * nssPKIXExtensionAttributes_Encode + * nssPKIXExtensionAttributes_GetExtensionAttributeCount + * nssPKIXExtensionAttributes_GetExtensionAttributes + * nssPKIXExtensionAttributes_SetExtensionAttributes + * nssPKIXExtensionAttributes_GetExtensionAttribute + * nssPKIXExtensionAttributes_SetExtensionAttribute + * nssPKIXExtensionAttributes_InsertExtensionAttribute + * nssPKIXExtensionAttributes_AppendExtensionAttribute + * nssPKIXExtensionAttributes_RemoveExtensionAttribute + * nssPKIXExtensionAttributes_FindExtensionAttribute + * nssPKIXExtensionAttributes_Equal + * nssPKIXExtensionAttributes_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXExtensionAttributes_verifyPointer + * + */ + +/* + * nssPKIXExtensionAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributes * +nssPKIXExtensionAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXExtensionAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributes * +nssPKIXExtensionAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXExtensionAttribute ea1, + ... +); + +/* + * nssPKIXExtensionAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttributes_Destroy +( + NSSPKIXExtensionAttributes *eas +); + +/* + * nssPKIXExtensionAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXExtensionAttributes_Encode +( + NSSPKIXExtensionAttributes *eas + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtensionAttributes_GetExtensionAttributeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXExtensionAttributes_GetExtensionAttributeCount +( + NSSPKIXExtensionAttributes *eas +); + +/* + * nssPKIXExtensionAttributes_GetExtensionAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXExtensionAttribute pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute ** +nssPKIXExtensionAttributes_GetExtensionAttributes +( + NSSPKIXExtensionAttributes *eas, + NSSPKIXExtensionAttribute *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtensionAttributes_SetExtensionAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_INVALID_POINTER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttributes_SetExtensionAttributes +( + NSSPKIXExtensionAttributes *eas, + NSSPKIXExtensionAttribute *ea[], + PRInt32 count +); + +/* + * nssPKIXExtensionAttributes_GetExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttribute upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute * +nssPKIXExtensionAttributes_GetExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtensionAttributes_SetExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttributes_SetExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + PRInt32 i, + NSSPKIXExtensionAttribute *ea +); + +/* + * nssPKIXExtensionAttributes_InsertExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttributes_InsertExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + PRInt32 i, + NSSPKIXExtensionAttribute *ea +); + +/* + * nssPKIXExtensionAttributes_AppendExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttributes_AppendExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + NSSPKIXExtensionAttribute *ea +); + +/* + * nssPKIXExtensionAttributes_RemoveExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttributes_RemoveExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + PRInt32 i, +); + +/* + * nssPKIXExtensionAttributes_FindExtensionAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * A nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXExtensionAttributes_FindExtensionAttribute +( + NSSPKIXExtensionAttributes *eas, + NSSPKIXExtensionAttribute *ea +); + +/* + * nssPKIXExtensionAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXExtensionAttributes_Equal +( + NSSPKIXExtensionAttributes *eas1, + NSSPKIXExtensionAttributes *eas2, + PRStatus *statusOpt +); + +/* + * nssPKIXExtensionAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttributes upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributes * +nssPKIXExtensionAttributes_Duplicate +( + NSSPKIXExtensionAttributes *eas, + NSSArena *arenaOpt +); + +/* + * fgmr + * There should be accessors to search the ExtensionAttributes and + * return the value for a specific value, etc. + */ + +#ifdef DEBUG +/* + * nssPKIXExtensionAttributes_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXExtensionAttributes + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttributes_verifyPointer +( + NSSPKIXExtensionAttributes *p +); +#endif /* DEBUG */ + +/* + * ExtensionAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionAttribute ::= SEQUENCE { + * extension-attribute-type [0] INTEGER (0..ub-extension-attributes), + * extension-attribute-value [1] + * ANY DEFINED BY extension-attribute-type } + * + * The private calls for this type: + * + * nssPKIXExtensionAttribute_Decode + * nssPKIXExtensionAttribute_Create + * nssPKIXExtensionAttribute_Destroy + * nssPKIXExtensionAttribute_Encode + * nssPKIXExtensionAttribute_GetExtensionsAttributeType + * nssPKIXExtensionAttribute_SetExtensionsAttributeType + * nssPKIXExtensionAttribute_GetExtensionsAttributeValue + * nssPKIXExtensionAttribute_SetExtensionsAttributeValue + * nssPKIXExtensionAttribute_Equal + * nssPKIXExtensionAttribute_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXExtensionAttribute_verifyPointer + * + */ + +/* + * nssPKIXExtensionAttribute_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttribute upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute * +nssPKIXExtensionAttribute_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXExtensionAttribute_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE_TYPE + * NSS_ERROR_INVALID_POINTER + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttribute upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute * +nssPKIXExtensionAttribute_Create +( + NSSArena *arenaOpt, + NSSPKIXExtensionAttributeType type, + NSSItem *value +); + +/* + * nssPKIXExtensionAttribute_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttribute_Destroy +( + NSSPKIXExtensionAttribute *ea +); + +/* + * nssPKIXExtensionAttribute_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXExtensionAttribute_Encode +( + NSSPKIXExtensionAttribute *ea, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtensionAttribute_GetExtensionsAttributeType + * + * -- fgmr comments -- + * {One of these objects created from BER generated by a program + * adhering to a later version of the PKIX standards might have + * a value not mentioned in the enumeration definition. This isn't + * a bug.} + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * A member of the NSSPKIXExtensionAttributeType enumeration + * upon success + * NSSPKIXExtensionAttributeType_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttributeType +nssPKIXExtensionAttribute_GetExtensionsAttributeType +( + NSSPKIXExtensionAttribute *ea +); + +/* + * nssPKIXExtensionAttribute_SetExtensionsAttributeType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttribute_SetExtensionsAttributeType +( + NSSPKIXExtensionAttribute *ea, + NSSPKIXExtensionAttributeType type +); + +/* + * nssPKIXExtensionAttribute_GetExtensionsAttributeValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +nssPKIXExtensionAttribute_GetExtensionsAttributeValue +( + NSSPKIXExtensionAttribute *ea, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtensionAttribute_SetExtensionsAttributeValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttribute_SetExtensionsAttributeValue +( + NSSPKIXExtensionAttribute *ea, + NSSItem *value +); + +/* + * nssPKIXExtensionAttribute_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXExtensionAttribute_Equal +( + NSSPKIXExtensionAttribute *ea1, + NSSPKIXExtensionAttribute *ea2, + PRStatus *statusOpt +); + +/* + * nssPKIXExtensionAttribute_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtensionAttribute upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtensionAttribute * +nssPKIXExtensionAttribute_Duplicate +( + NSSPKIXExtensionAttribute *ea, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXExtensionAttribute_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXExtensionAttribute + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENSION_ATTRIBUTE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXExtensionAttribute_verifyPointer +( + NSSPKIXExtensionAttribute *p +); +#endif /* DEBUG */ + +/* + * CommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CommonName ::= PrintableString (SIZE (1..ub-common-name-length)) + * + * The private calls for this type: + * + * nssPKIXCommonName_Decode + * nssPKIXCommonName_CreateFromUTF8 + * nssPKIXCommonName_Encode + * + */ + +/* + * nssPKIXCommonName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCommonName * +nssPKIXCommonName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXCommonName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCommonName * +nssPKIXCommonName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXCommonName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_COMMON_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXCommonName_Encode +( + NSSPKIXCommonName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * TeletexCommonName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length)) + * + * The private calls for this type: + * + * nssPKIXTeletexCommonName_Decode + * nssPKIXTeletexCommonName_CreateFromUTF8 + * nssPKIXTeletexCommonName_Encode + * + */ + +/* + * nssPKIXTeletexCommonName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexCommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexCommonName * +nssPKIXTeletexCommonName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTeletexCommonName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexCommonName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexCommonName * +nssPKIXTeletexCommonName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXTeletexCommonName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_COMMON_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTeletexCommonName_Encode +( + NSSPKIXTeletexCommonName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * TeletexOrganizationName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationName ::= + * TeletexString (SIZE (1..ub-organization-name-length)) + * + * The private calls for this type: + * + * nssPKIXTeletexOrganizationName_Decode + * nssPKIXTeletexOrganizationName_CreateFromUTF8 + * nssPKIXTeletexOrganizationName_Encode + * + */ + +/* + * nssPKIXTeletexOrganizationName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationName * +nssPKIXTeletexOrganizationName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTeletexOrganizationName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationName * +nssPKIXTeletexOrganizationName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXTeletexOrganizationName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATION_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTeletexOrganizationName_Encode +( + NSSPKIXTeletexOrganizationName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * TeletexPersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexPersonalName ::= SET { + * surname [0] TeletexString (SIZE (1..ub-surname-length)), + * given-name [1] TeletexString + * (SIZE (1..ub-given-name-length)) OPTIONAL, + * initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL, + * generation-qualifier [3] TeletexString (SIZE + * (1..ub-generation-qualifier-length)) OPTIONAL } + * + * The private calls for this type: + * + * nssPKIXTeletexPersonalName_Decode + * nssPKIXTeletexPersonalName_Create + * nssPKIXTeletexPersonalName_Destroy + * nssPKIXTeletexPersonalName_Encode + * nssPKIXTeletexPersonalName_GetSurname + * nssPKIXTeletexPersonalName_SetSurname + * nssPKIXTeletexPersonalName_HasGivenName + * nssPKIXTeletexPersonalName_GetGivenName + * nssPKIXTeletexPersonalName_SetGivenName + * nssPKIXTeletexPersonalName_RemoveGivenName + * nssPKIXTeletexPersonalName_HasInitials + * nssPKIXTeletexPersonalName_GetInitials + * nssPKIXTeletexPersonalName_SetInitials + * nssPKIXTeletexPersonalName_RemoveInitials + * nssPKIXTeletexPersonalName_HasGenerationQualifier + * nssPKIXTeletexPersonalName_GetGenerationQualifier + * nssPKIXTeletexPersonalName_SetGenerationQualifier + * nssPKIXTeletexPersonalName_RemoveGenerationQualifier + * nssPKIXTeletexPersonalName_Equal + * nssPKIXTeletexPersonalName_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXTeletexPersonalName_verifyPointer + * + */ + +/* + * nssPKIXTeletexPersonalName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexPersonalName * +nssPKIXTeletexPersonalName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTeletexPersonalName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXTeletexPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexPersonalName * +nssPKIXTeletexPersonalName_Create +( + NSSArena *arenaOpt, + NSSUTF8 *surname, + NSSUTF8 *givenNameOpt, + NSSUTF8 *initialsOpt, + NSSUTF8 *generationQualifierOpt +); + +/* + * nssPKIXTeletexPersonalName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_Destroy +( + NSSPKIXTeletexPersonalName *personalName +); + +/* + * nssPKIXTeletexPersonalName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTeletexPersonalName_Encode +( + NSSPKIXTeletexPersonalName *personalName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexPersonalName_GetSurname + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXTeletexPersonalName_GetSurname +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexPersonalName_SetSurname + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_SetSurname +( + NSSPKIXTeletexPersonalName *personalName, + NSSUTF8 *surname +); + +/* + * nssPKIXTeletexPersonalName_HasGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXTeletexPersonalName_HasGivenName +( + NSSPKIXTeletexPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * nssPKIXTeletexPersonalName_GetGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXTeletexPersonalName_GetGivenName +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexPersonalName_SetGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_SetGivenName +( + NSSPKIXTeletexPersonalName *personalName, + NSSUTF8 *givenName +); + +/* + * nssPKIXTeletexPersonalName_RemoveGivenName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_RemoveGivenName +( + NSSPKIXTeletexPersonalName *personalName +); + +/* + * nssPKIXTeletexPersonalName_HasInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXTeletexPersonalName_HasInitials +( + NSSPKIXTeletexPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * nssPKIXTeletexPersonalName_GetInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXTeletexPersonalName_GetInitials +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexPersonalName_SetInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_SetInitials +( + NSSPKIXTeletexPersonalName *personalName, + NSSUTF8 *initials +); + +/* + * nssPKIXTeletexPersonalName_RemoveInitials + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_RemoveInitials +( + NSSPKIXTeletexPersonalName *personalName +); + +/* + * nssPKIXTeletexPersonalName_HasGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXTeletexPersonalName_HasGenerationQualifier +( + NSSPKIXTeletexPersonalName *personalName, + PRStatus *statusOpt +); + +/* + * nssPKIXTeletexPersonalName_GetGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXTeletexPersonalName_GetGenerationQualifier +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexPersonalName_SetGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_SetGenerationQualifier +( + NSSPKIXTeletexPersonalName *personalName, + NSSUTF8 *generationQualifier +); + +/* + * nssPKIXTeletexPersonalName_RemoveGenerationQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_RemoveGenerationQualifier +( + NSSPKIXTeletexPersonalName *personalName +); + +/* + * nssPKIXTeletexPersonalName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXTeletexPersonalName_Equal +( + NSSPKIXTeletexPersonalName *personalName1, + NSSPKIXTeletexPersonalName *personalName2, + PRStatus *statusOpt +); + +/* + * nssPKIXTeletexPersonalName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * A valid pointer to an NSSPKIXTeletexPersonalName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexPersonalName * +nssPKIXTeletexPersonalName_Duplicate +( + NSSPKIXTeletexPersonalName *personalName, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXTeletexPersonalName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXTeletexPersonalName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_PERSONAL_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexPersonalName_verifyPointer +( + NSSPKIXTeletexPersonalName *p +); +#endif /* DEBUG */ + +/* + * TeletexOrganizationalUnitNames + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationalUnitNames ::= SEQUENCE SIZE + * (1..ub-organizational-units) OF TeletexOrganizationalUnitName + * + * The private calls for the type: + * + * nssPKIXTeletexOrganizationalUnitNames_Decode + * nssPKIXTeletexOrganizationalUnitNames_Create + * nssPKIXTeletexOrganizationalUnitNames_Destroy + * nssPKIXTeletexOrganizationalUnitNames_Encode + * nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNameCount + * nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNames + * nssPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitNames + * nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitName + * nssPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitName + * nssPKIXTeletexOrganizationalUnitNames_InsertTeletexOrganizationalUnitName + * nssPKIXTeletexOrganizationalUnitNames_AppendTeletexOrganizationalUnitName + * nssPKIXTeletexOrganizationalUnitNames_RemoveTeletexOrganizationalUnitName + * nssPKIXTeletexOrganizationalUnitNames_FindTeletexOrganizationalUnitName + * nssPKIXTeletexOrganizationalUnitNames_Equal + * nssPKIXTeletexOrganizationalUnitNames_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXTeletexOrganizationalUnitNames_verifyPointer + * + */ + +/* + * nssPKIXTeletexOrganizationalUnitNames_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitNames * +nssPKIXTeletexOrganizationalUnitNames_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitNames * +nssPKIXTeletexOrganizationalUnitNames_Create +( + NSSArena *arenaOpt, + NSSPKIXTeletexOrganizationalUnitName *ou1, + ... +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexOrganizationalUnitNames_Destroy +( + NSSPKIXTeletexOrganizationalUnitNames *ous +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTeletexOrganizationalUnitNames_Encode +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNameCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNameCount +( + NSSPKIXTeletexOrganizationalUnitNames *ous +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXTeletexOrganizationalUnitName + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitName ** +nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitNames +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSPKIXTeletexOrganizationalUnitName *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitNames +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSPKIXTeletexOrganizationalUnitName *ou[], + PRInt32 count +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitName * +nssPKIXTeletexOrganizationalUnitNames_GetTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexOrganizationalUnitNames_SetTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + PRInt32 i, + NSSPKIXTeletexOrganizationalUnitName *ou +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_InsertTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexOrganizationalUnitNames_InsertTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + PRInt32 i, + NSSPKIXTeletexOrganizationalUnitName *ou +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_AppendTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexOrganizationalUnitNames_AppendTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSPKIXTeletexOrganizationalUnitName *ou +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_RemoveTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexOrganizationalUnitNames_RemoveTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + PRInt32 i +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_FindTeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * The index of the specified revoked certificate upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +nssPKIXTeletexOrganizationalUnitNames_FindTeletexOrganizationalUnitName +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSPKIXTeletexOrganizationalUnitName *ou +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXTeletexOrganizationalUnitNames_Equal +( + NSSPKIXTeletexOrganizationalUnitNames *ous1, + NSSPKIXTeletexOrganizationalUnitNames *ous2, + PRStatus *statusOpt +); + +/* + * nssPKIXTeletexOrganizationalUnitNames_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitNames * +nssPKIXTeletexOrganizationalUnitNames_Duplicate +( + NSSPKIXTeletexOrganizationalUnitNames *ous, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXTeletexOrganizationalUnitNames_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXTeletexOrganizationalUnitNames + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexOrganizationalUnitNames_verifyPointer +( + NSSPKIXTeletexOrganizationalUnitNames *p +); +#endif /* DEBUG */ + +/* + * TeletexOrganizationalUnitName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationalUnitName ::= TeletexString + * (SIZE (1..ub-organizational-unit-name-length)) + * + * The private calls for this type: + * + * nssPKIXTeletexOrganizationalUnitName_Decode + * nssPKIXTeletexOrganizationalUnitName_CreateFromUTF8 + * nssPKIXTeletexOrganizationalUnitName_Encode + * + */ + +/* + * nssPKIXTeletexOrganizationalUnitName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitName * +nssPKIXTeletexOrganizationalUnitName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTeletexOrganizationalUnitName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexOrganizationalUnitName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexOrganizationalUnitName * +nssPKIXTeletexOrganizationalUnitName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXTeletexOrganizationalUnitName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_ORGANIZATIONAL_UNIT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTeletexOrganizationalUnitName_Encode +( + NSSPKIXTeletexOrganizationalUnitName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PDSName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PDSName ::= PrintableString (SIZE (1..ub-pds-name-length)) + * + * The private calls for this type: + * + * nssPKIXPDSName_Decode + * nssPKIXPDSName_CreateFromUTF8 + * nssPKIXPDSName_Encode + * + */ + +/* + * nssPKIXPDSName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSName * +nssPKIXPDSName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPDSName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSName * +nssPKIXPDSName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXPDSName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPDSName_Encode +( + NSSPKIXPDSName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PhysicalDeliveryCountryName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PhysicalDeliveryCountryName ::= CHOICE { + * x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)), + * iso-3166-alpha2-code PrintableString + * (SIZE (ub-country-name-alpha-length)) } + * + * The private calls for this type: + * + * nssPKIXPhysicalDeliveryCountryName_Decode + * nssPKIXPhysicalDeliveryCountryName_CreateFromUTF8 + * nssPKIXPhysicalDeliveryCountryName_Encode + * + */ + +/* + * nssPKIXPhysicalDeliveryCountryName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPhysicalDeliveryCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPhysicalDeliveryCountryName * +nssPKIXPhysicalDeliveryCountryName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPhysicalDeliveryCountryName_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPhysicalDeliveryCountryName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPhysicalDeliveryCountryName * +nssPKIXPhysicalDeliveryCountryName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXPhysicalDeliveryCountryName_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PHYSICAL_DELIVERY_COUNTRY_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPhysicalDeliveryCountryName_Encode +( + NSSPKIXPhysicalDeliveryCountryName *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PostalCode + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PostalCode ::= CHOICE { + * numeric-code NumericString (SIZE (1..ub-postal-code-length)), + * printable-code PrintableString (SIZE (1..ub-postal-code-length)) } + * + * The private calls for this type: + * + * nssPKIXPostalCode_Decode + * nssPKIXPostalCode_CreateFromUTF8 + * nssPKIXPostalCode_Encode + * + */ + +/* + * nssPKIXPostalCode_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPostalCode upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPostalCode * +nssPKIXPostalCode_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPostalCode_CreateFromUTF8 + * + * { basically just enforces the length limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPostalCode upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPostalCode * +nssPKIXPostalCode_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXPostalCode_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POSTAL_CODE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPostalCode_Encode +( + NSSPKIXPostalCode *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PDSParameter + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PDSParameter ::= SET { + * printable-string PrintableString + * (SIZE(1..ub-pds-parameter-length)) OPTIONAL, + * teletex-string TeletexString + * (SIZE(1..ub-pds-parameter-length)) OPTIONAL } + * + * The private calls for this type: + * + * nssPKIXPDSParameter_Decode + * nssPKIXPDSParameter_CreateFromUTF8 + * nssPKIXPDSParameter_Create + * nssPKIXPDSParameter_Delete + * nssPKIXPDSParameter_Encode + * nssPKIXPDSParameter_GetUTF8Encoding + * nssPKIXPDSParameter_HasPrintableString + * nssPKIXPDSParameter_GetPrintableString + * nssPKIXPDSParameter_SetPrintableString + * nssPKIXPDSParameter_RemovePrintableString + * nssPKIXPDSParameter_HasTeletexString + * nssPKIXPDSParameter_GetTeletexString + * nssPKIXPDSParameter_SetTeletexString + * nssPKIXPDSParameter_RemoveTeletexString + * nssPKIXPDSParameter_Equal + * nssPKIXPDSParameter_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXPDSParameter_verifyPointer + */ + +/* + * nssPKIXPDSParameter_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSParameter upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSParameter * +nssPKIXPDSParameter_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPDSParameter_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSParameter upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSParameter * +nssPKIXPDSParameter_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXPDSParameter_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXPDSParameter upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSParameter * +nssPKIXPDSParameter_Create +( + NSSArena *arenaOpt, + NSSUTF8 *printableStringOpt, + NSSUTF8 *teletexStringOpt +); + +/* + * nssPKIXPDSParameter_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPDSParameter_Destroy +( + NSSPKIXPDSParameter *p +); + +/* + * nssPKIXPDSParameter_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPDSParameter_Encode +( + NSSPKIXPDSParameter *p, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXPDSParameter_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXPDSParameter_GetUTF8Encoding +( + NSSPKIXPDSParameter *p, + NSSArena *arenaOpt +); + +/* + * nssPKIXPDSParameter_HasPrintableString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPDSParameter_HasPrintableString +( + NSSPKIXPDSParameter *p, + PRStatus *statusOpt +); + +/* + * nssPKIXPDSParameter_GetPrintableString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXPDSParameter_GetPrintableString +( + NSSPKIXPDSParameter *p, + NSSArena *arenaOpt +); + +/* + * nssPKIXPDSParameter_SetPrintableString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPDSParameter_SetPrintableString +( + NSSPKIXPDSParameter *p, + NSSUTF8 *printableString +); + +/* + * nssPKIXPDSParameter_RemovePrintableString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPDSParameter_RemovePrintableString +( + NSSPKIXPDSParameter *p +); + +/* + * nssPKIXPDSParameter_HasTeletexString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPDSParameter_HasTeletexString +( + NSSPKIXPDSParameter *p, + PRStatus *statusOpt +); + +/* + * nssPKIXPDSParameter_GetTeletexString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXPDSParameter_GetTeletexString +( + NSSPKIXPDSParameter *p, + NSSArena *arenaOpt +); + +/* + * nssPKIXPDSParameter_SetTeletexString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPDSParameter_SetTeletexString +( + NSSPKIXPDSParameter *p, + NSSUTF8 *teletexString +); + +/* + * nssPKIXPDSParameter_RemoveTeletexString + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPDSParameter_RemoveTeletexString +( + NSSPKIXPDSParameter *p +); + +/* + * nssPKIXPDSParameter_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXPDSParameter_Equal +( + NSSPKIXPDSParameter *p1, + NSSPKIXPDSParameter *p2, + PRStatus *statusOpt +); + +/* + * nssPKIXPDSParameter_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPDSParameter upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPDSParameter * +nssPKIXPDSParameter_Duplicate +( + NSSPKIXPDSParameter *p, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXPDSParameter_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXPDSParameter + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PDS_PARAMETER + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXPDSParameter_verifyPointer +( + NSSPKIXPDSParameter *p +); +#endif /* DEBUG */ + +/* + * fgmr: what about these PDS types? + * + * PhysicalDeliveryOfficeName + * + * PhysicalDeliveryOfficeNumber + * + * ExtensionORAddressComponents + * + * PhysicalDeliveryPersonalName + * + * PhysicalDeliveryOrganizationName + * + * ExtensionPhysicalDeliveryAddressComponents + * + * StreetAddress + * + * PostOfficeBoxAddress + * + * PosteRestanteAddress + * + * UniquePostalName + * + * LocalPostalAttributes + * + */ + +/* + * UnformattedPostalAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UnformattedPostalAddress ::= SET { + * printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF + * PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL, + * teletex-string TeletexString + * (SIZE (1..ub-unformatted-address-length)) OPTIONAL } + * + * The private calls for the type: + * + * + */ + +/* + * ExtendedNetworkAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtendedNetworkAddress ::= CHOICE { + * e163-4-address SEQUENCE { + * number [0] NumericString (SIZE (1..ub-e163-4-number-length)), + * sub-address [1] NumericString + * (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, + * psap-address [0] PresentationAddress } + * + * The private calls for the type: + * + * nssPKIXExtendedNetworkAddress_Decode + * nssPKIXExtendedNetworkAddress_Create + * nssPKIXExtendedNetworkAddress_Encode + * nssPKIXExtendedNetworkAddress_Destroy + * nssPKIXExtendedNetworkAddress_GetChoice + * nssPKIXExtendedNetworkAddress_Get + * nssPKIXExtendedNetworkAddress_GetE1634Address + * nssPKIXExtendedNetworkAddress_GetPsapAddress + * nssPKIXExtendedNetworkAddress_Set + * nssPKIXExtendedNetworkAddress_SetE163Address + * nssPKIXExtendedNetworkAddress_SetPsapAddress + * nssPKIXExtendedNetworkAddress_Equal + * nssPKIXExtendedNetworkAddress_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXExtendedNetworkAddress_verifyPointer + * + */ + +/* + * nssPKIXExtendedNetworkAddress_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +nssPKIXExtendedNetworkAddress_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXExtendedNetworkAddress_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_PKIX_PRESENTATION_ADDRESS + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +nssPKIXExtendedNetworkAddress_Create +( + NSSArena *arenaOpt, + NSSPKIXExtendedNetworkAddressChoice choice, + void *address +); + +/* + * nssPKIXExtendedNetworkAddress_CreateFromE1634Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +nssPKIXExtendedNetworkAddress_CreateFromE1634Address +( + NSSArena *arenaOpt, + NSSPKIXe1634Address *e1634address +); + +/* + * nssPKIXExtendedNetworkAddress_CreateFromPresentationAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_PRESENTATION_ADDRESS + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +nssPKIXExtendedNetworkAddress_CreateFromPresentationAddress +( + NSSArena *arenaOpt, + NSSPKIXPresentationAddress *presentationAddress +); + +/* + * nssPKIXExtendedNetworkAddress_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtendedNetworkAddress_Destroy +( + NSSPKIXExtendedNetworkAddress *ena +); + +/* + * nssPKIXExtendedNetworkAddress_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXExtendedNetworkAddress_Encode +( + NSSPKIXExtendedNetworkAddress *ena, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtendedNetworkAddress_GetChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * + * Return value: + * A valid element of the NSSPKIXExtendedNetworkAddressChoice upon + * success + * The value nssPKIXExtendedNetworkAddress_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddressChoice +nssPKIXExtendedNetworkAddress_GetChoice +( + NSSPKIXExtendedNetworkAddress *ena +); + +/* + * nssPKIXExtendedNetworkAddress_GetSpecifiedChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A pointer... + * NULL upon failure + */ + +NSS_EXTERN void * +nssPKIXExtendedNetworkAddress_GetSpecifiedChoice +( + NSSPKIXExtendedNetworkAddress *ena, + NSSPKIXExtendedNetworkAddressChoice which, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtendedNetworkAddress_GetE1634Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A valid pointer to an NSSPKIXe1643Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXe1643Address * +nssPKIXExtendedNetworkAddress_GetE1634Address +( + NSSPKIXExtendedNetworkAddress *ena, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtendedNetworkAddress_GetPresentationAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_WRONG_CHOICE + * + * Return value: + * A valid pointer to an NSSPKIXPresentationAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPresentationAddress * +nssPKIXExtendedNetworkAddress_GetPresentationAddress +( + NSSPKIXExtendedNetworkAddress *ena, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtendedNetworkAddress_SetSpecifiedChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_PKIX_PRESENTATION_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtendedNetworkAddress_SetSpecifiedChoice +( + NSSPKIXExtendedNetworkAddress *ena, + NSSPKIXExtendedNetworkAddressChoice which, + void *address +); + +/* + * nssPKIXExtendedNetworkAddress_SetE163Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtendedNetworkAddress_SetE163Address +( + NSSPKIXExtendedNetworkAddress *ena, + NSSPKIXe1634Address *e1634address +); + +/* + * nssPKIXExtendedNetworkAddress_SetPresentationAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_PRESENTATION_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtendedNetworkAddress_SetPresentationAddress +( + NSSPKIXExtendedNetworkAddress *ena, + NSSPKIXPresentationAddress *presentationAddress +); + +/* + * nssPKIXExtendedNetworkAddress_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXExtendedNetworkAddress_Equal +( + NSSPKIXExtendedNetworkAddress *ena1, + NSSPKIXExtendedNetworkAddress *ena2, + PRStatus *statusOpt +); + +/* + * nssPKIXExtendedNetworkAddress_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtendedNetworkAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtendedNetworkAddress * +nssPKIXExtendedNetworkAddress_Duplicate +( + NSSPKIXExtendedNetworkAddress *ena, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXExtendedNetworkAddress_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXExtendedNetworkAddress + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXTENDED_NETWORK_ADDRESS + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXExtendedNetworkAddress_verifyPointer +( + NSSPKIXExtendedNetworkAddress *p +); +#endif /* DEBUG */ + +/* + * e163-4-address + * + * Helper structure for ExtendedNetworkAddress. + * -- fgmr comments -- + * + * From RFC 2459: + * + * e163-4-address SEQUENCE { + * number [0] NumericString (SIZE (1..ub-e163-4-number-length)), + * sub-address [1] NumericString + * (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, + * + * The private calls for the type: + * + * nssPKIXe1634Address_Decode + * nssPKIXe1634Address_Create + * nssPKIXe1634Address_Destroy + * nssPKIXe1634Address_Encode + * nssPKIXe1634Address_GetNumber + * nssPKIXe1634Address_SetNumber + * nssPKIXe1634Address_HasSubAddress + * nssPKIXe1634Address_GetSubAddress + * nssPKIXe1634Address_SetSubAddress + * nssPKIXe1634Address_RemoveSubAddress + * nssPKIXe1634Address_Equal + * nssPKIXe1634Address_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXe1634Address_verifyPointer + * + */ + +/* + * nssPKIXe1634Address_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXe1634Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXe1634Address * +nssPKIXe1634Address_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXe1634Address_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXe1634Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXe1634Address * +nssPKIXe1634Address_Create +( + NSSArena *arenaOpt, + NSSUTF8 *number, + NSSUTF8 *subAddressOpt +); + +/* + * nssPKIXe1634Address_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXe1634Address_Destroy +( + NSSPKIXe1634Address *e +); + +/* + * nssPKIXe1634Address_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXe1634Address_Encode +( + NSSPKIXe1634Address *e, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXe1634Address_GetNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXe1634Address_GetNumber +( + NSSPKIXe1634Address *e, + NSSArena *arenaOpt +); + +/* + * nssPKIXe1634Address_SetNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXe1634Address_SetNumber +( + NSSPKIXe1634Address *e, + NSSUTF8 *number +); + +/* + * nssPKIXe1634Address_HasSubAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXe1634Address_HasSubAddress +( + NSSPKIXe1634Address *e, + PRStatus *statusOpt +); + +/* + * nssPKIXe1634Address_GetSubAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXe1634Address_GetSubAddress +( + NSSPKIXe1634Address *e, + NSSArena *arenaOpt +); + +/* + * nssPKIXe1634Address_SetSubAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXe1634Address_SetSubAddress +( + NSSPKIXe1634Address *e, + NSSUTF8 *subAddress +); + +/* + * nssPKIXe1634Address_RemoveSubAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXe1634Address_RemoveSubAddress +( + NSSPKIXe1634Address *e +); + +/* + * nssPKIXe1634Address_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXe1634Address_Equal +( + NSSPKIXe1634Address *e1, + NSSPKIXe1634Address *e2, + PRStatus *statusOpt +); + +/* + * nssPKIXe1634Address_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXe1634Address upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXe1634Address * +nssPKIXe1634Address_Duplicate +( + NSSPKIXe1634Address *e, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXe1634Address_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXe1634Address + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_E163_4_ADDRESS + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXe1634Address_verifyPointer +( + NSSPKIXe1634Address *p +); +#endif /* DEBUG */ + +/* + * PresentationAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PresentationAddress ::= SEQUENCE { + * pSelector [0] EXPLICIT OCTET STRING OPTIONAL, + * sSelector [1] EXPLICIT OCTET STRING OPTIONAL, + * tSelector [2] EXPLICIT OCTET STRING OPTIONAL, + * nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING } + * + * The private calls for the type: + * + * nssPKIXPresentationAddress_Decode + * nssPKIXPresentationAddress_Create + * nssPKIXPresentationAddress_Destroy + * nssPKIXPresentationAddress_Encode + * nssPKIXPresentationAddress_HasPSelector + * nssPKIXPresentationAddress_GetPSelector + * nssPKIXPresentationAddress_SetPSelector + * nssPKIXPresentationAddress_RemovePSelector + * nssPKIXPresentationAddress_HasSSelector + * nssPKIXPresentationAddress_GetSSelector + * nssPKIXPresentationAddress_SetSSelector + * nssPKIXPresentationAddress_RemoveSSelector + * nssPKIXPresentationAddress_HasTSelector + * nssPKIXPresentationAddress_GetTSelector + * nssPKIXPresentationAddress_SetTSelector + * nssPKIXPresentationAddress_RemoveTSelector + * nssPKIXPresentationAddress_HasNAddresses + * nssPKIXPresentationAddress_GetNAddresses + * nssPKIXPresentationAddress_SetNAddresses + * nssPKIXPresentationAddress_RemoveNAddresses + *{NAddresses must be more complex than that} + * nssPKIXPresentationAddress_Compare + * nssPKIXPresentationAddress_Duplicate + * + * In debug builds, the following call is available: + * + * _verifyPointer + * + */ + +/* + * TeletexDomainDefinedAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexDomainDefinedAttributes ::= SEQUENCE SIZE + * (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute + * + * The private calls for the type: + * + * nssPKIXTeletexDomainDefinedAttributes_Decode + * nssPKIXTeletexDomainDefinedAttributes_Create + * nssPKIXTeletexDomainDefinedAttributes_Destroy + * nssPKIXTeletexDomainDefinedAttributes_Encode + * nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributeCount + * nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributes + * nssPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttributes + * nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttribute + * nssPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttribute + * nssPKIXTeletexDomainDefinedAttributes_InsertTeletexDomainDefinedAttribute + * nssPKIXTeletexDomainDefinedAttributes_AppendTeletexDomainDefinedAttribute + * nssPKIXTeletexDomainDefinedAttributes_RemoveTeletexDomainDefinedAttribute + * nssPKIXTeletexDomainDefinedAttributes_FindTeletexDomainDefinedAttribute + * nssPKIXTeletexDomainDefinedAttributes_Equal + * nssPKIXTeletexDomainDefinedAttributes_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXTeletexDomainDefinedAttributes_verifyPointer + * + */ + +/* + * nssPKIXTeletexDomainDefinedAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttributes * +nssPKIXTeletexDomainDefinedAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttributes * +nssPKIXTeletexDomainDefinedAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXTeletexDomainDefinedAttribute *tdda1, + ... +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttributes_Destroy +( + NSSPKIXTeletexDomainDefinedAttributes *tddas +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTeletexDomainDefinedAttributes_Encode +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributeCount +( + NSSPKIXTeletexDomainDefinedAttributes *tddas +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXTeletexDomainDefinedAttribute + * pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute ** +nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttributes +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSPKIXTeletexDomainDefinedAttribute *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttributes +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSPKIXTeletexDomainDefinedAttribute *tdda[], + PRInt32 count +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +nssPKIXTeletexDomainDefinedAttributes_GetTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttributes_SetTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + PRInt32 i, + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_InsertTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttributes_InsertTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + PRInt32 i, + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_AppendTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttributes_AppendTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_RemoveTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttributes_RemoveTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + PRInt32 i +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_FindTeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * The nonnegative integer upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +nssPKIXTeletexDomainDefinedAttributes_FindTeletexDomainDefinedAttribute +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXTeletexDomainDefinedAttributes_Equal +( + NSSPKIXTeletexDomainDefinedAttributes *tddas1, + NSSPKIXTeletexDomainDefinedAttributes *tddas2, + PRStatus *statusOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttributes + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttributes * +nssPKIXTeletexDomainDefinedAttributes_Duplicate +( + NSSPKIXTeletexDomainDefinedAttributes *tddas, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXTeletexDomainDefinedAttributes_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXTeletexDomainDefinedAttributes + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttributes_verifyPointer +( + NSSPKIXTeletexDomainDefinedAttributes *p +); +#endif /* DEBUG */ + +/* + * TeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexDomainDefinedAttribute ::= SEQUENCE { + * type TeletexString + * (SIZE (1..ub-domain-defined-attribute-type-length)), + * value TeletexString + * (SIZE (1..ub-domain-defined-attribute-value-length)) } + * + * The private calls for the type: + * + * nssPKIXTeletexDomainDefinedAttribute_Decode + * nssPKIXTeletexDomainDefinedAttribute_CreateFromUTF8 + * nssPKIXTeletexDomainDefinedAttribute_Create + * nssPKIXTeletexDomainDefinedAttribute_Destroy + * nssPKIXTeletexDomainDefinedAttribute_Encode + * nssPKIXTeletexDomainDefinedAttribute_GetUTF8Encoding + * nssPKIXTeletexDomainDefinedAttribute_GetType + * nssPKIXTeletexDomainDefinedAttribute_SetType + * nssPKIXTeletexDomainDefinedAttribute_GetValue + * nssPKIXTeletexDomainDefinedAttribute_GetValue + * nssPKIXTeletexDomainDefinedAttribute_Equal + * nssPKIXTeletexDomainDefinedAttribute_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXTeletexDomainDefinedAttribute_verifyPointer + * + */ + +/* + * nssPKIXTeletexDomainDefinedAttribute_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +nssPKIXTeletexDomainDefinedAttribute_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +nssPKIXTeletexDomainDefinedAttribute_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +nssPKIXTeletexDomainDefinedAttribute_Create +( + NSSArena *arenaOpt, + NSSUTF8 *type, + NSSUTF8 *value +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttribute_Destroy +( + NSSPKIXTeletexDomainDefinedAttribute *tdda +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXTeletexDomainDefinedAttribute_Encode +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXTeletexDomainDefinedAttribute_GetUTF8Encoding +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_GetType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXTeletexDomainDefinedAttribute_GetType +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_SetType + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttribute_SetType +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSUTF8 *type +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_GetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXTeletexDomainDefinedAttribute_GetValue +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSArena *arenaOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_SetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttribute_SetValue +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSUTF8 *value +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXTeletexDomainDefinedAttribute_Equal +( + NSSPKIXTeletexDomainDefinedAttribute *tdda1, + NSSPKIXTeletexDomainDefinedAttribute *tdda2, + PRStatus *statusOpt +); + +/* + * nssPKIXTeletexDomainDefinedAttribute_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXTeletexDomainDefinedAttribute * +nssPKIXTeletexDomainDefinedAttribute_Duplicate +( + NSSPKIXTeletexDomainDefinedAttribute *tdda, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXTeletexDomainDefinedAttribute_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXTeletexDomainDefinedAttribute + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_TELETEX_DOMAIN_DEFINED_ATTRIBUTE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXTeletexDomainDefinedAttribute_verifyPointer +( + NSSPKIXTeletexDomainDefinedAttribute *p +); +#endif /* DEBUG */ + +/* + * AuthorityKeyIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AuthorityKeyIdentifier ::= SEQUENCE { + * keyIdentifier [0] KeyIdentifier OPTIONAL, + * authorityCertIssuer [1] GeneralNames OPTIONAL, + * authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL } + * -- authorityCertIssuer and authorityCertSerialNumber shall both + * -- be present or both be absent + * + * The private calls for the type: + * + * nssPKIXAuthorityKeyIdentifier_Decode + * nssPKIXAuthorityKeyIdentifier_Create + * nssPKIXAuthorityKeyIdentifier_Destroy + * nssPKIXAuthorityKeyIdentifier_Encode + * nssPKIXAuthorityKeyIdentifier_HasKeyIdentifier + * nssPKIXAuthorityKeyIdentifier_GetKeyIdentifier + * nssPKIXAuthorityKeyIdentifier_SetKeyIdentifier + * nssPKIXAuthorityKeyIdentifier_RemoveKeyIdentifier + * nssPKIXAuthorityKeyIdentifier_HasAuthorityCertIssuerAndSerialNumber + * nssPKIXAuthorityKeyIdentifier_RemoveAuthorityCertIssuerAndSerialNumber + * nssPKIXAuthorityKeyIdentifier_GetAuthorityCertIssuer + * nssPKIXAuthorityKeyIdentifier_GetAuthorityCertSerialNumber + * nssPKIXAuthorityKeyIdentifier_SetAuthorityCertIssuerAndSerialNumber + * nssPKIXAuthorityKeyIdentifier_Equal + * nssPKIXAuthorityKeyIdentifier_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXAuthorityKeyIdentifier_verifyPointer + * + */ + +/* + * nssPKIXAuthorityKeyIdentifier_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityKeyIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityKeyIdentifier * +nssPKIXAuthorityKeyIdentifier_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXAuthorityKeyIdentifier_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ARGUMENTS + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityKeyIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityKeyIdentifier * +nssPKIXAuthorityKeyIdentifier_Create +( + NSSArena *arenaOpt, + NSSPKIXKeyIdentifier *keyIdentifierOpt, + NSSPKIXGeneralNames *authorityCertIssuerOpt, + NSSPKIXCertificateSerialNumber *authorityCertSerialNumberOpt +); + +/* + * nssPKIXAuthorityKeyIdentifier_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityKeyIdentifier_Destroy +( + NSSPKIXAuthorityKeyIdentifier *aki +); + +/* + * nssPKIXAuthorityKeyIdentifier_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXAuthorityKeyIdentifier_Encode +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAuthorityKeyIdentifier_HasKeyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXAuthorityKeyIdentifier_HasKeyIdentifier +( + NSSPKIXAuthorityKeyIdentifier *aki, + PRStatus *statusOpt +); + +/* + * nssPKIXAuthorityKeyIdentifier_GetKeyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_KEY_IDENTIFIER + * + * Return value: + * A valid pointer to an NSSPKIXKeyIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyIdentifier * +nssPKIXAuthorityKeyIdentifier_GetKeyIdentifier +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSPKIXKeyIdentifier *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAuthorityKeyIdentifier_SetKeyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityKeyIdentifier_SetKeyIdentifier +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSPKIXKeyIdentifier *keyIdentifier +); + +/* + * nssPKIXAuthorityKeyIdentifier_RemoveKeyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_HAS_NO_KEY_IDENTIFIER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityKeyIdentifier_RemoveKeyIdentifier +( + NSSPKIXAuthorityKeyIdentifier *aki +); + +/* + * nssPKIXAuthorityKeyIdentifier_HasAuthorityCertIssuerAndSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_TRUE if it has them + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXAuthorityKeyIdentifier_HasAuthorityCertIssuerAndSerialNumber +( + NSSPKIXAuthorityKeyIdentifier *aki, + PRStatus *statusOpt +); + +/* + * nssPKIXAuthorityKeyIdentifier_RemoveAuthorityCertIssuerAndSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_HAS_NO_AUTHORITY_CERT_ISSUER_AND_SERIAL_NUMBER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityKeyIdentifier_RemoveAuthorityCertIssuerAndSerialNumber +( + NSSPKIXAuthorityKeyIdentifier *aki +); + +/* + * nssPKIXAuthorityKeyIdentifier_GetAuthorityCertIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_AUTHORITY_CERT_ISSUER_AND_SERIAL_NUMBER + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +nssPKIXAuthorityKeyIdentifier_GetAuthorityCertIssuer +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSArena *arenaOpt +); + +/* + * nssPKIXAuthorityKeyIdentifier_GetAuthorityCertSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_AUTHORITY_CERT_ISSUER_AND_SERIAL_NUMBER + * + * Return value: + * A valid pointer to an NSSPKIXCertificateSerialNumber upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificateSerialNumber * +nssPKIXAuthorityKeyIdentifier_GetAuthorityCertSerialNumber +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSPKIXCertificateSerialNumber *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAuthorityKeyIdentifier_SetAuthorityCertIssuerAndSerialNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityKeyIdentifier_SetAuthorityCertIssuerAndSerialNumber +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSPKIXGeneralNames *issuer, + NSSPKIXCertificateSerialNumber *serialNumber +); + +/* + * nssPKIXAuthorityKeyIdentifier_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXAuthorityKeyIdentifier_Equal +( + NSSPKIXAuthorityKeyIdentifier *aki1, + NSSPKIXAuthorityKeyIdentifier *aki2, + PRStatus *statusOpt +); + +/* + * nssPKIXAuthorityKeyIdentifier_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityKeyIdentifier upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityKeyIdentifier * +nssPKIXAuthorityKeyIdentifier_Duplicate +( + NSSPKIXAuthorityKeyIdentifier *aki, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXAuthorityKeyIdentifier_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXAuthorityKeyIdentifier + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_KEY_IDENTIFIER + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityKeyIdentifier_verifyPointer +( + NSSPKIXAuthorityKeyIdentifier *p +); +#endif /* DEBUG */ + +/* + * KeyUsage + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * KeyUsage ::= BIT STRING { + * digitalSignature (0), + * nonRepudiation (1), + * keyEncipherment (2), + * dataEncipherment (3), + * keyAgreement (4), + * keyCertSign (5), + * cRLSign (6), + * encipherOnly (7), + * decipherOnly (8) } + * + * The private calls for the type: + * + * nssPKIXKeyUsage_Decode + * nssPKIXKeyUsage_CreateFromUTF8 + * nssPKIXKeyUsage_CreateFromValue + * nssPKIXKeyUsage_Destroy + * nssPKIXKeyUsage_Encode + * nssPKIXKeyUsage_GetUTF8Encoding + * nssPKIXKeyUsage_GetValue + * nssPKIXKeyUsage_SetValue + * { bitwise accessors? } + * nssPKIXKeyUsage_Equal + * nssPKIXKeyUsage_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXKeyUsage_verifyPointer + * + */ + +/* + * nssPKIXKeyUsage_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyUsage upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyUsage * +nssPKIXKeyUsage_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXKeyUsage_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyUsage upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyUsage * +nssPKIXKeyUsage_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXKeyUsage_CreateFromValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE_VALUE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyUsage upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyUsage * +nssPKIXKeyUsage_CreateFromValue +( + NSSArena *arenaOpt, + NSSPKIXKeyUsageValue value +); + +/* + * nssPKIXKeyUsage_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXKeyUsage_Destroy +( + NSSPKIXKeyUsage *keyUsage +); + +/* + * nssPKIXKeyUsage_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXKeyUsage_Encode +( + NSSPKIXKeyUsage *keyUsage, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXKeyUsage_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSUTF8 pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXKeyUsage_GetUTF8Encoding +( + NSSPKIXKeyUsage *keyUsage, + NSSArena *arenaOpt +); + +/* + * nssPKIXKeyUsage_GetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * + * Return value: + * A set of NSSKeyUsageValue values OR-d together upon success + * NSSKeyUsage_NSSinvalid upon failure + */ + +NSS_EXTERN NSSKeyUsageValue +nssPKIXKeyUsage_GetValue +( + NSSPKIXKeyUsage *keyUsage +); + +/* + * nssPKIXKeyUsage_SetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * NSS_ERROR_INVALID_PKIX_KEY_USAGE_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXKeyUsage_SetValue +( + NSSPKIXKeyUsage *keyUsage, + NSSPKIXKeyUsageValue value +); + +/* + * nssPKIXKeyUsage_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXKeyUsage_Equal +( + NSSPKIXKeyUsage *keyUsage1, + NSSPKIXKeyUsage *keyUsage2, + PRStatus *statusOpt +); + +/* + * nssPKIXKeyUsage_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyUsage upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyUsage * +nssPKIXKeyUsage_Duplicate +( + NSSPKIXKeyUsage *keyUsage, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXKeyUsage_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXKeyUsage + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_KEY_USAGE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXKeyUsage_verifyPointer +( + NSSPKIXKeyUsage *p +); +#endif /* DEBUG */ + +/* + * PrivateKeyUsagePeriod + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PrivateKeyUsagePeriod ::= SEQUENCE { + * notBefore [0] GeneralizedTime OPTIONAL, + * notAfter [1] GeneralizedTime OPTIONAL } + * -- either notBefore or notAfter shall be present + * + * The private calls for the type: + * + * nssPKIXPrivateKeyUsagePeriod_Decode + * nssPKIXPrivateKeyUsagePeriod_Create + * nssPKIXPrivateKeyUsagePeriod_Destroy + * nssPKIXPrivateKeyUsagePeriod_Encode + * nssPKIXPrivateKeyUsagePeriod_HasNotBefore + * nssPKIXPrivateKeyUsagePeriod_GetNotBefore + * nssPKIXPrivateKeyUsagePeriod_SetNotBefore + * nssPKIXPrivateKeyUsagePeriod_RemoveNotBefore + * nssPKIXPrivateKeyUsagePeriod_HasNotAfter + * nssPKIXPrivateKeyUsagePeriod_GetNotAfter + * nssPKIXPrivateKeyUsagePeriod_SetNotAfter + * nssPKIXPrivateKeyUsagePeriod_RemoveNotAfter + * nssPKIXPrivateKeyUsagePeriod_Equal + * nssPKIXPrivateKeyUsagePeriod_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXPrivateKeyUsagePeriod_verifyPointer + * + */ + +/* + * nssPKIXPrivateKeyUsagePeriod_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod * +nssPKIXPrivateKeyUsagePeriod_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPrivateKeyUsagePeriod_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_TIME + * NSS_ERROR_INVALID_ARGUMENTS + * + * Return value: + * A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod * +nssPKIXPrivateKeyUsagePeriod_Create +( + NSSArena *arenaOpt, + NSSTime *notBeforeOpt, + NSSTime *notAfterOpt +); + +/* + * nssPKIXPrivateKeyUsagePeriod_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPrivateKeyUsagePeriod_Destroy +( + NSSPKIXPrivateKeyUsagePeriod *period +); + +/* + * nssPKIXPrivateKeyUsagePeriod_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_DATA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPrivateKeyUsagePeriod_Encode +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXPrivateKeyUsagePeriod_HasNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPrivateKeyUsagePeriod_HasNotBefore +( + NSSPKIXPrivateKeyUsagePeriod *period, + PRStatus *statusOpt +); + +/* + * nssPKIXPrivateKeyUsagePeriod_GetNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_NOT_BEFORE + * + * Return value: + * NSSTime {fgmr!} + * NULL upon failure + */ + +NSS_EXTERN NSSTime * +nssPKIXPrivateKeyUsagePeriod_GetNotBefore +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSArena *arenaOpt +); + +/* + * nssPKIXPrivateKeyUsagePeriod_SetNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_TIME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPrivateKeyUsagePeriod_SetNotBefore +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSTime *notBefore +); + +/* + * nssPKIXPrivateKeyUsagePeriod_RemoveNotBefore + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_HAS_NO_NOT_BEFORE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPrivateKeyUsagePeriod_RemoveNotBefore +( + NSSPKIXPrivateKeyUsagePeriod *period +); + +/* + * nssPKIXPrivateKeyUsagePeriod_HasNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPrivateKeyUsagePeriod_HasNotAfter +( + NSSPKIXPrivateKeyUsagePeriod *period, + PRStatus *statusOpt +); + +/* + * nssPKIXPrivateKeyUsagePeriod_GetNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_NOT_AFTER + * + * Return value: + * NSSTime {fgmr!} + * NULL upon failure + */ + +NSS_EXTERN NSSTime * +nssPKIXPrivateKeyUsagePeriod_GetNotAfter +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSArena *arenaOpt +); + +/* + * nssPKIXPrivateKeyUsagePeriod_SetNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_INVALID_TIME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPrivateKeyUsagePeriod_SetNotAfter +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSTime *notAfter +); + +/* + * nssPKIXPrivateKeyUsagePeriod_RemoveNotAfter + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_HAS_NO_NOT_AFTER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPrivateKeyUsagePeriod_RemoveNotAfter +( + NSSPKIXPrivateKeyUsagePeriod *period +); + +/* + * nssPKIXPrivateKeyUsagePeriod_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXPrivateKeyUsagePeriod_Equal +( + NSSPKIXPrivateKeyUsagePeriod *period1, + NSSPKIXPrivateKeyUsagePeriod *period2, + PRStatus *statusOpt +); + +/* + * nssPKIXPrivateKeyUsagePeriod_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod * +nssPKIXPrivateKeyUsagePeriod_Duplicate +( + NSSPKIXPrivateKeyUsagePeriod *period, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXPrivateKeyUsagePeriod_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXPrivateKeyUsagePeriod + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXPrivateKeyUsagePeriod_verifyPointer +( + NSSPKIXPrivateKeyUsagePeriod *p +); +#endif /* DEBUG */ + +/* + * CertificatePolicies + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation + * + * The private calls for the type: + * + * nssPKIXCertificatePolicies_Decode + * nssPKIXCertificatePolicies_Create + * nssPKIXCertificatePolicies_Destroy + * nssPKIXCertificatePolicies_Encode + * nssPKIXCertificatePolicies_GetPolicyInformationCount + * nssPKIXCertificatePolicies_GetPolicyInformations + * nssPKIXCertificatePolicies_SetPolicyInformations + * nssPKIXCertificatePolicies_GetPolicyInformation + * nssPKIXCertificatePolicies_SetPolicyInformation + * nssPKIXCertificatePolicies_InsertPolicyInformation + * nssPKIXCertificatePolicies_AppendPolicyInformation + * nssPKIXCertificatePolicies_RemovePolicyInformation + * nssPKIXCertificatePolicies_FindPolicyInformation + * nssPKIXCertificatePolicies_Equal + * nssPKIXCertificatePolicies_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXCertificatePolicies_verifyPointer + * + */ + +/* + * nssPKIXCertificatePolicies_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCertificatePolicies upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificatePolicies * +nssPKIXCertificatePolicies_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXCertificatePolicies_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * A valid pointer to an NSSPKIXCertificatePolicies upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificatePolicies * +nssPKIXCertificatePolicies_Create +( + NSSArena *arenaOpt, + NSSPKIXPolicyInformation *pi1, + ... +); + +/* + * nssPKIXCertificatePolicies_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificatePolicies_Destroy +( + NSSPKIXCertificatePolicies *cp +); + +/* + * nssPKIXCertificatePolicies_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXCertificatePolicies_Encode +( + NSSPKIXCertificatePolicies *cp, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificatePolicies_GetPolicyInformationCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXCertificatePolicies_GetPolicyInformationCount +( + NSSPKIXCertificatePolicies *cp +); + +/* + * nssPKIXCertificatePolicies_GetPolicyInformations + * + * We regret the function name. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXPolicyInformation pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation ** +nssPKIXCertificatePolicies_GetPolicyInformations +( + NSSPKIXCertificatePolicies *cp, + NSSPKIXPolicyInformation *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificatePolicies_SetPolicyInformations + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificatePolicies_SetPolicyInformations +( + NSSPKIXCertificatePolicies *cp, + NSSPKIXPolicyInformation *pi[], + PRInt32 count +); + +/* + * nssPKIXCertificatePolicies_GetPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyInformation upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation * +nssPKIXCertificatePolicies_GetPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXCertificatePolicies_SetPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificatePolicies_SetPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + PRInt32 i, + NSSPKIXPolicyInformation *pi +); + +/* + * nssPKIXCertificatePolicies_InsertPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificatePolicies_InsertPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + PRInt32 i, + NSSPKIXPolicyInformation *pi +); + +/* + * nssPKIXCertificatePolicies_AppendPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificatePolicies_AppendPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + NSSPKIXPolicyInformation *pi +); + +/* + * nssPKIXCertificatePolicies_RemovePolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCertificatePolicies_RemovePolicyInformation +( + NSSPKIXCertificatePolicies *cp, + PRInt32 i +); + +/* + * nssPKIXCertificatePolicies_FindPolicyInformation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * The nonnegative integer upon success + * -1 upon failure + */ + +NSS_EXTERN PRInt32 +nssPKIXCertificatePolicies_FindPolicyInformation +( + NSSPKIXCertificatePolicies *cp, + NSSPKIXPolicyInformation *pi +); + +/* + * nssPKIXCertificatePolicies_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXCertificatePolicies_Equal +( + NSSPKIXCertificatePolicies *cp1, + NSSPKIXCertificatePolicies *cp2, + PRStatus *statusOpt +); + +/* + * nssPKIXCertificatePolicies_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCertificatePolicies upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertificatePolicies * +nssPKIXCertificatePolicies_Duplicate +( + NSSPKIXCertificatePolicies *cp, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXCertificatePolicies_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXCertificatePolicies + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXCertificatePolicies_verifyPointer +( + NSSPKIXCertificatePolicies *p +); +#endif /* DEBUG */ + +/* + * PolicyInformation + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyInformation ::= SEQUENCE { + * policyIdentifier CertPolicyId, + * policyQualifiers SEQUENCE SIZE (1..MAX) OF + * PolicyQualifierInfo OPTIONAL } + * + * The private calls for the type: + * + * nssPKIXPolicyInformation_Decode + * nssPKIXPolicyInformation_Create + * nssPKIXPolicyInformation_Destroy + * nssPKIXPolicyInformation_Encode + * nssPKIXPolicyInformation_GetPolicyIdentifier + * nssPKIXPolicyInformation_SetPolicyIdentifier + * nssPKIXPolicyInformation_GetPolicyQualifierCount + * nssPKIXPolicyInformation_GetPolicyQualifiers + * nssPKIXPolicyInformation_SetPolicyQualifiers + * nssPKIXPolicyInformation_GetPolicyQualifier + * nssPKIXPolicyInformation_SetPolicyQualifier + * nssPKIXPolicyInformation_InsertPolicyQualifier + * nssPKIXPolicyInformation_AppendPolicyQualifier + * nssPKIXPolicyInformation_RemovePolicyQualifier + * nssPKIXPolicyInformation_Equal + * nssPKIXPolicyInformation_Duplicate + * { and accessors by specific policy qualifier ID } + * + * In debug builds, the following call is available: + * + * nssPKIXPolicyInformation_verifyPointer + * + */ + +/* + * nssPKIXPolicyInformation_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyInformation upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation * +nssPKIXPolicyInformation_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPolicyInformation_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * + * Return value: + * A valid pointer to an NSSPKIXPolicyInformation upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation * +nssPKIXPolicyInformation_Create +( + NSSArena *arenaOpt, + NSSPKIXCertPolicyId *id, + NSSPKIXPolicyQualifierInfo *pqi1, + ... +); + +/* + * nssPKIXPolicyInformation_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyInformation_Destroy +( + NSSPKIXPolicyInformation *pi +); + +/* + * nssPKIXPolicyInformation_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPolicyInformation_Encode +( + NSSPKIXPolicyInformation *pi, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyInformation_GetPolicyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid OID upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +nssPKIXPolicyInformation_GetPolicyIdentifier +( + NSSPKIXPolicyInformation *pi +); + +/* + * nssPKIXPolicyInformation_SetPolicyIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyInformation_SetPolicyIdentifier +( + NSSPKIXPolicyInformation *pi, + NSSPKIXCertPolicyIdentifier *cpi +); + +/* + * nssPKIXPolicyInformation_GetPolicyQualifierCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXPolicyInformation_GetPolicyQualifierCount +( + NSSPKIXPolicyInformation *pi +); + +/* + * nssPKIXPolicyInformation_GetPolicyQualifiers + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXPolicyQualifierInfo pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo ** +nssPKIXPolicyInformation_GetPolicyQualifiers +( + NSSPKIXPolicyInformation *pi, + NSSPKIXPolicyQualifierInfo *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyInformation_SetPolicyQualifiers + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyInformation_SetPolicyQualifiers +( + NSSPKIXPolicyInformation *pi, + NSSPKIXPolicyQualifierInfo *pqi[], + PRInt32 count +); + +/* + * nssPKIXPolicyInformation_GetPolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo * +nssPKIXPolicyInformation_GetPolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyInformation_SetPolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyInformation_SetPolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i, + NSSPKIXPolicyQualifierInfo *pqi +); + +/* + * nssPKIXPolicyInformation_InsertPolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyInformation_InsertPolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i, + NSSPKIXPolicyQualifierInfo *pqi +); + +/* + * nssPKIXPolicyInformation_AppendPolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyInformation_AppendPolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i, + NSSPKIXPolicyQualifierInfo *pqi +); + +/* + * nssPKIXPolicyInformation_RemovePolicyQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyInformation_RemovePolicyQualifier +( + NSSPKIXPolicyInformation *pi, + PRInt32 i +); + +/* + * nssPKIXPolicyInformation_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXPolicyInformation_Equal +( + NSSPKIXPolicyInformation *pi1, + NSSPKIXPolicyInformation *pi2, + PRStatus *statusOpt +); + +/* + * nssPKIXPolicyInformation_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyInformation upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyInformation * +nssPKIXPolicyInformation_Duplicate +( + NSSPKIXPolicyInformation *pi, + NSSArena *arenaOpt +); + +/* + * { and accessors by specific policy qualifier ID } + * + */ + +#ifdef DEBUG +/* + * nssPKIXPolicyInformation_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXPolicyInformation + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyInformation_verifyPointer +( + NSSPKIXPolicyInformation *p +); +#endif /* DEBUG */ + +/* + * PolicyQualifierInfo + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyQualifierInfo ::= SEQUENCE { + * policyQualifierId PolicyQualifierId, + * qualifier ANY DEFINED BY policyQualifierId } + * + * The private calls for the type: + * + * nssPKIXPolicyQualifierInfo_Decode + * nssPKIXPolicyQualifierInfo_Create + * nssPKIXPolicyQualifierInfo_Destroy + * nssPKIXPolicyQualifierInfo_Encode + * nssPKIXPolicyQualifierInfo_GetPolicyQualifierID + * nssPKIXPolicyQualifierInfo_SetPolicyQualifierID + * nssPKIXPolicyQualifierInfo_GetQualifier + * nssPKIXPolicyQualifierInfo_SetQualifier + * nssPKIXPolicyQualifierInfo_Equal + * nssPKIXPolicyQualifierInfo_Duplicate + * { and accessors by specific qualifier id/type } + * + * In debug builds, the following call is available: + * + * nssPKIXPolicyQualifierInfo_verifyPointer + * + */ + +/* + * nssPKIXPolicyQualifierInfo_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo * +nssPKIXPolicyQualifierInfo_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPolicyQualifierInfo_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_ID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo * +nssPKIXPolicyQualifierInfo_Create +( + NSSArena *arenaOpt, + NSSPKIXPolicyQualifierId *policyQualifierId, + NSSItem *qualifier +); + +/* + * nssPKIXPolicyQualifierInfo_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyQualifierInfo_Destroy +( + NSSPKIXPolicyQualifierInfo *pqi +); + +/* + * nssPKIXPolicyQualifierInfo_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPolicyQualifierInfo_Encode +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyQualifierInfo_GetPolicyQualifierId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierId (an NSSOID) upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierId * +nssPKIXPolicyQualifierInfo_GetPolicyQualifierId +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyQualifierInfo_SetPolicyQualifierId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyQualifierInfo_SetPolicyQualifierId +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSPKIXPolicyQualifierId *pqid +); + +/* + * nssPKIXPolicyQualifierInfo_GetQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +nssPKIXPolicyQualifierInfo_GetQualifier +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyQualifierInfo_SetQualifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyQualifierInfo_SetQualifier +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSItem *qualifier +); + +/* + * nssPKIXPolicyQualifierInfo_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXPolicyQualifierInfo_Equal +( + NSSPKIXPolicyQualifierInfo *pqi1, + NSSPKIXPolicyQualifierInfo *pqi2, + PRStatus *statusOpt +); + +/* + * nssPKIXPolicyQualifierInfo_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyQualifierInfo upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyQualifierInfo * +nssPKIXPolicyQualifierInfo_Duplicate +( + NSSPKIXPolicyQualifierInfo *pqi, + NSSArena *arenaOpt +); + +/* + * { and accessors by specific qualifier id/type } + * + */ +#ifdef DEBUG +/* + * nssPKIXPolicyQualifierInfo_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXPolicyQualifierInfo + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyQualifierInfo_verifyPointer +( + NSSPKIXPolicyQualifierInfo *p +); +#endif /* DEBUG */ + +/* + * CPSuri + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CPSuri ::= IA5String + * + * The private calls for this type: + * + * nssPKIXCPSuri_Decode + * nssPKIXCPSuri_CreateFromUTF8 + * nssPKIXCPSuri_Encode + * + */ + +/* + * nssPKIXCPSuri_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCPSuri upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCPSuri * +nssPKIXCPSuri_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXCPSuri_CreateFromUTF8 + * + * { basically just enforces the length and charset limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCPSuri upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCPSuri * +nssPKIXCPSuri_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXCPSuri_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CPS_URI + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXCPSuri_Encode +( + NSSPKIXCPSuri *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * UserNotice + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UserNotice ::= SEQUENCE { + * noticeRef NoticeReference OPTIONAL, + * explicitText DisplayText OPTIONAL} + * + * The private calls for this type: + * + * nssPKIXUserNotice_Decode + * nssPKIXUserNotice_Create + * nssPKIXUserNotice_Destroy + * nssPKIXUserNotice_Encode + * nssPKIXUserNotice_HasNoticeRef + * nssPKIXUserNotice_GetNoticeRef + * nssPKIXUserNotice_SetNoticeRef + * nssPKIXUserNotice_RemoveNoticeRef + * nssPKIXUserNotice_HasExplicitText + * nssPKIXUserNotice_GetExplicitText + * nssPKIXUserNotice_SetExplicitText + * nssPKIXUserNotice_RemoveExplicitText + * nssPKIXUserNotice_Equal + * nssPKIXUserNotice_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXUserNotice_verifyPointer + * + */ + + +/* + * nssPKIXUserNotice_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXUserNotice upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUserNotice * +nssPKIXUserNotice_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXUserNotice_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * + * Return value: + * A valid pointer to an NSSPKIXUserNotice upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUserNotice * +nssPKIXUserNotice_Create +( + NSSArena *arenaOpt, + NSSPKIXNoticeReference *noticeRef, + NSSPKIXDisplayText *explicitText +); + +/* + * nssPKIXUserNotice_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXUserNotice_Destroy +( + NSSPKIXUserNotice *userNotice +); + +/* + * nssPKIXUserNotice_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXUserNotice_Encode +( + NSSPKIXUserNotice *userNotice, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXUserNotice_HasNoticeRef + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXUserNotice_HasNoticeRef +( + NSSPKIXUserNotice *userNotice, + PRStatus *statusOpt +); + +/* + * nssPKIXUserNotice_GetNoticeRef + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_NOTICE_REF + * + * Return value: + * A valid pointer to an NSSPKIXNoticeReference upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNoticeReference * +nssPKIXUserNotice_GetNoticeRef +( + NSSPKIXUserNotice *userNotice, + NSSArena *arenaOpt +); + +/* + * nssPKIXUserNotice_SetNoticeRef + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXUserNotice_SetNoticeRef +( + NSSPKIXUserNotice *userNotice, + NSSPKIXNoticeReference *noticeRef +); + +/* + * nssPKIXUserNotice_RemoveNoticeRef + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_HAS_NO_NOTICE_REF + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXUserNotice_RemoveNoticeRef +( + NSSPKIXUserNotice *userNotice +); + +/* + * nssPKIXUserNotice_HasExplicitText + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_TRUE if it has some + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXUserNotice_HasExplicitText +( + NSSPKIXUserNotice *userNotice, + PRStatus *statusOpt +); + +/* + * nssPKIXUserNotice_GetExplicitText + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_EXPLICIT_TEXT + * + * Return value: + * A valid pointer to an NSSPKIXDisplayText string upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDisplayText * +nssPKIXUserNotice_GetExplicitText +( + NSSPKIXUserNotice *userNotice, + NSSArena *arenaOpt +); + +/* + * nssPKIXUserNotice_SetExplicitText + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXUserNotice_SetExplicitText +( + NSSPKIXUserNotice *userNotice, + NSSPKIXDisplayText *explicitText +); + +/* + * nssPKIXUserNotice_RemoveExplicitText + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_HAS_NO_EXPLICIT_TEXT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXUserNotice_RemoveExplicitText +( + NSSPKIXUserNotice *userNotice +); + +/* + * nssPKIXUserNotice_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXUserNotice_Equal +( + NSSPKIXUserNotice *userNotice1, + NSSPKIXUserNotice *userNotice2, + PRStatus *statusOpt +); + +/* + * nssPKIXUserNotice_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXUserNotice upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXUserNotice * +nssPKIXUserNotice_Duplicate +( + NSSPKIXUserNotice *userNotice, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXUserNotice_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXUserNotice + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_USER_NOTICE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXUserNotice_verifyPointer +( + NSSPKIXUserNotice *p +); +#endif /* DEBUG */ + +/* + * NoticeReference + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NoticeReference ::= SEQUENCE { + * organization DisplayText, + * noticeNumbers SEQUENCE OF INTEGER } + * + * The private calls for this type: + * + * nssPKIXNoticeReference_Decode + * nssPKIXNoticeReference_Create + * nssPKIXNoticeReference_Destroy + * nssPKIXNoticeReference_Encode + * nssPKIXNoticeReference_GetOrganization + * nssPKIXNoticeReference_SetOrganization + * nssPKIXNoticeReference_GetNoticeNumberCount + * nssPKIXNoticeReference_GetNoticeNumbers + * nssPKIXNoticeReference_SetNoticeNumbers + * nssPKIXNoticeReference_GetNoticeNumber + * nssPKIXNoticeReference_SetNoticeNumber + * nssPKIXNoticeReference_InsertNoticeNumber + * nssPKIXNoticeReference_AppendNoticeNumber + * nssPKIXNoticeReference_RemoveNoticeNumber + * { maybe number-exists-p gettor? } + * nssPKIXNoticeReference_Equal + * nssPKIXNoticeReference_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXNoticeReference_verifyPointer + * + */ + +/* + * nssPKIXNoticeReference_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNoticeReference upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNoticeReference * +nssPKIXNoticeReference_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXNoticeReference_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * + * Return value: + * A valid pointer to an NSSPKIXNoticeReference upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNoticeReference * +nssPKIXNoticeReference_Create +( + NSSArena *arenaOpt, + NSSPKIXDisplayText *organization, + PRUint32 noticeCount, + PRInt32 noticeNumber1, + ... +); + +/* + * { fgmr -- or should the call that takes PRInt32 be _CreateFromValues, + * and the _Create call take NSSBER integers? } + */ + +/* + * nssPKIXNoticeReference_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_Destroy +( + NSSPKIXNoticeReference *nr +); + +/* + * nssPKIXNoticeReference_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXNoticeReference_Encode +( + NSSPKIXNoticeReference *nr, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXNoticeReference_GetOrganization + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXDisplayText string upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDisplayText * +nssPKIXNoticeReference_GetOrganization +( + NSSPKIXNoticeReference *nr, + NSSArena *arenaOpt +); + +/* + * nssPKIXNoticeReference_SetOrganization + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_SetOrganization +( + NSSPKIXNoticeReference *nr, + NSSPKIXDisplayText *organization +); + +/* + * nssPKIXNoticeReference_GetNoticeNumberCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXNoticeReference_GetNoticeNumberCount +( + NSSPKIXNoticeReference *nr +); + +/* + * nssPKIXNoticeReference_GetNoticeNumbers + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of PRInt32 values upon success + * NULL upon failure + */ + +NSS_EXTERN PRInt32 * +nssPKIXNoticeReference_GetNoticeNumbers +( + NSSPKIXNoticeReference *nr, + PRInt32 rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXNoticeReference_SetNoticeNumbers + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_SetNoticeNumbers +( + NSSPKIXNoticeReference *nr, + PRInt32 noticeNumbers[], + PRInt32 count +); + +/* + * nssPKIXNoticeReference_GetNoticeNumber + * + * -- fgmr comments -- + * Because there is no natural "invalid" notice number value, we must + * pass the number by reference, and return an explicit status value. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_INVALID_POINTER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_GetNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 i, + PRInt32 *noticeNumberP +); + +/* + * nssPKIXNoticeReference_SetNoticeNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_SetNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 i, + PRInt32 noticeNumber +); + +/* + * nssPKIXNoticeReference_InsertNoticeNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_InsertNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 i, + PRInt32 noticeNumber +); + +/* + * nssPKIXNoticeReference_AppendNoticeNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_AppendNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 noticeNumber +); + +/* + * nssPKIXNoticeReference_RemoveNoticeNumber + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_RemoveNoticeNumber +( + NSSPKIXNoticeReference *nr, + PRInt32 i +); + +/* + * { maybe number-exists-p gettor? } + */ + +/* + * nssPKIXNoticeReference_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXNoticeReference_Equal +( + NSSPKIXNoticeReference *nr1, + NSSPKIXNoticeReference *nr2, + PRStatus *statusOpt +); + +/* + * nssPKIXNoticeReference_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNoticeReference upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNoticeReference * +nssPKIXNoticeReference_Duplicate +( + NSSPKIXNoticeReference *nr, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXNoticeReference_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXNoticeReference + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXNoticeReference_verifyPointer +( + NSSPKIXNoticeReference *p +); +#endif /* DEBUG */ + +/* + * DisplayText + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DisplayText ::= CHOICE { + * visibleString VisibleString (SIZE (1..200)), + * bmpString BMPString (SIZE (1..200)), + * utf8String UTF8String (SIZE (1..200)) } + * + * The private calls for this type: + * + * nssPKIXDisplayText_Decode + * nssPKIXDisplayText_CreateFromUTF8 + * nssPKIXDisplayText_Encode + * + */ + +/* + * nssPKIXDisplayText_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDisplayText upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDisplayText * +nssPKIXDisplayText_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXDisplayText_CreateFromUTF8 + * + * { basically just enforces the length and charset limit } + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDisplayText upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDisplayText * +nssPKIXDisplayText_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXDisplayText_Encode + * + * + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXDisplayText_Encode +( + NSSPKIXDisplayText *name, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * PolicyMappings + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE { + * issuerDomainPolicy CertPolicyId, + * subjectDomainPolicy CertPolicyId } + * + * The private calls for this type: + * + * nssPKIXPolicyMappings_Decode + * nssPKIXPolicyMappings_Create + * nssPKIXPolicyMappings_Destroy + * nssPKIXPolicyMappings_Encode + * nssPKIXPolicyMappings_GetPolicyMappingCount + * nssPKIXPolicyMappings_GetPolicyMappings + * nssPKIXPolicyMappings_SetPolicyMappings + * nssPKIXPolicyMappings_GetPolicyMapping + * nssPKIXPolicyMappings_SetPolicyMapping + * nssPKIXPolicyMappings_InsertPolicyMapping + * nssPKIXPolicyMappings_AppendPolicyMapping + * nssPKIXPolicyMappings_RemovePolicyMapping + * nssPKIXPolicyMappings_FindPolicyMapping + * nssPKIXPolicyMappings_Equal + * nssPKIXPolicyMappings_Duplicate + * nssPKIXPolicyMappings_IssuerDomainPolicyExists + * nssPKIXPolicyMappings_SubjectDomainPolicyExists + * nssPKIXPolicyMappings_FindIssuerDomainPolicy + * nssPKIXPolicyMappings_FindSubjectDomainPolicy + * nssPKIXPolicyMappings_MapIssuerToSubject + * nssPKIXPolicyMappings_MapSubjectToIssuer + * { find's and map's: what if there's more than one? } + * + * In debug builds, the following call is available: + * + * nssPKIXPolicyMappings_verifyPointer + * + */ + +/* + * nssPKIXPolicyMappings_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyMappings upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyMappings * +nssPKIXPolicyMappings_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPolicyMappings_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * + * Return value: + * A valid pointer to an NSSPKIXPolicyMappings upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyMappings * +nssPKIXPolicyMappings_Decode +( + NSSArena *arenaOpt, + NSSPKIXpolicyMapping *policyMapping1, + ... +); + +/* + * nssPKIXPolicyMappings_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyMappings_Destroy +( + NSSPKIXPolicyMappings *policyMappings +); + +/* + * nssPKIXPolicyMappings_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_DATA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPolicyMappings_Encode +( + NSSPKIXPolicyMappings *policyMappings, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyMappings_GetPolicyMappingCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXPolicyMappings_GetPolicyMappingCount +( + NSSPKIXPolicyMappings *policyMappings +); + +/* + * nssPKIXPolicyMappings_GetPolicyMappings + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXpolicyMapping pointers upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping ** +nssPKIXPolicyMappings_GetPolicyMappings +( + NSSPKIXPolicyMappings *policyMappings + NSSPKIXpolicyMapping *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyMappings_SetPolicyMappings + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyMappings_SetPolicyMappings +( + NSSPKIXPolicyMappings *policyMappings + NSSPKIXpolicyMapping *policyMapping[] + PRInt32 count +); + +/* + * nssPKIXPolicyMappings_GetPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXpolicyMapping upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping * +nssPKIXPolicyMappings_GetPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyMappings_SetPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyMappings_SetPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + PRInt32 i, + NSSPKIXpolicyMapping *policyMapping +); + +/* + * nssPKIXPolicyMappings_InsertPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyMappings_InsertPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + PRInt32 i, + NSSPKIXpolicyMapping *policyMapping +); + +/* + * nssPKIXPolicyMappings_AppendPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyMappings_AppendPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + NSSPKIXpolicyMapping *policyMapping +); + +/* + * nssPKIXPolicyMappings_RemovePolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyMappings_RemovePolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + PRInt32 i +); + +/* + * nssPKIXPolicyMappings_FindPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXPolicyMappings_FindPolicyMapping +( + NSSPKIXPolicyMappings *policyMappings + NSSPKIXpolicyMapping *policyMapping +); + +/* + * nssPKIXPolicyMappings_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXPolicyMappings_Equal +( + NSSPKIXPolicyMappings *policyMappings1, + NSSPKIXpolicyMappings *policyMappings2, + PRStatus *statusOpt +); + +/* + * nssPKIXPolicyMappings_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXPolicyMappings upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyMappings * +nssPKIXPolicyMappings_Duplicate +( + NSSPKIXPolicyMappings *policyMappings, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXPolicyMappings_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXPolicyMappings + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyMappings_verifyPointer +( + NSSPKIXPolicyMappings *p +); +#endif /* DEBUG */ + +/* + * nssPKIXPolicyMappings_IssuerDomainPolicyExists + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * + * Return value: + * PR_TRUE if the specified domain policy OID exists + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPolicyMappings_IssuerDomainPolicyExists +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy, + PRStatus *statusOpt +); + +/* + * nssPKIXPolicyMappings_SubjectDomainPolicyExists + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * + * Return value: + * PR_TRUE if the specified domain policy OID exists + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPolicyMappings_SubjectDomainPolicyExists +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *subjectDomainPolicy, + PRStatus *statusOpt +); + +/* + * nssPKIXPolicyMappings_FindIssuerDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXPolicyMappings_FindIssuerDomainPolicy +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * nssPKIXPolicyMappings_FindSubjectDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXPolicyMappings_FindSubjectDomainPolicy +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * nssPKIXPolicyMappings_MapIssuerToSubject + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NOT_FOUND + * + * Return value: + * A valid pointer to an NSSPKIXCertPolicyId upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +nssPKIXPolicyMappings_MapIssuerToSubject +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * nssPKIXPolicyMappings_MapSubjectToIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NOT_FOUND + * + * Return value: + * A valid pointer to an NSSPKIXCertPolicyId upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +nssPKIXPolicyMappings_MapSubjectToIssuer +( + NSSPKIXPolicyMappings *policyMappings, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * policyMapping + * + * Helper structure for PolicyMappings + * + * SEQUENCE { + * issuerDomainPolicy CertPolicyId, + * subjectDomainPolicy CertPolicyId } + * + * The private calls for this type: + * + * nssPKIXpolicyMapping_Decode + * nssPKIXpolicyMapping_Create + * nssPKIXpolicyMapping_Destroy + * nssPKIXpolicyMapping_Encode + * nssPKIXpolicyMapping_GetIssuerDomainPolicy + * nssPKIXpolicyMapping_SetIssuerDomainPolicy + * nssPKIXpolicyMapping_GetSubjectDomainPolicy + * nssPKIXpolicyMapping_SetSubjectDomainPolicy + * nssPKIXpolicyMapping_Equal + * nssPKIXpolicyMapping_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXpolicyMapping_verifyPointer + * + */ + +/* + * nssPKIXpolicyMapping_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXpolicyMapping upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping * +nssPKIXpolicyMapping_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXpolicyMapping_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * + * Return value: + * A valid pointer to an NSSPKIXpolicyMapping upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping * +nssPKIXpolicyMapping_Create +( + NSSArena *arenaOpt, + NSSPKIXCertPolicyId *issuerDomainPolicy, + NSSPKIXCertPolicyId *subjectDomainPolicy +); + +/* + * nssPKIXpolicyMapping_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXpolicyMapping_Destroy +( + NSSPKIXpolicyMapping *policyMapping +); + +/* + * nssPKIXpolicyMapping_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_DATA + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXpolicyMapping_Encode +( + NSSPKIXpolicyMapping *policyMapping, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXpolicyMapping_GetIssuerDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertPolicyId OID upon success + * NULL upon faliure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +nssPKIXpolicyMapping_GetIssuerDomainPolicy +( + NSSPKIXpolicyMapping *policyMapping +); + +/* + * nssPKIXpolicyMapping_SetIssuerDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXpolicyMapping_SetIssuerDomainPolicy +( + NSSPKIXpolicyMapping *policyMapping, + NSSPKIXCertPolicyId *issuerDomainPolicy +); + +/* + * nssPKIXpolicyMapping_GetSubjectDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXCertPolicyId OID upon success + * NULL upon faliure + */ + +NSS_EXTERN NSSPKIXCertPolicyId * +nssPKIXpolicyMapping_GetSubjectDomainPolicy +( + NSSPKIXpolicyMapping *policyMapping +); + +/* + * nssPKIXpolicyMapping_SetSubjectDomainPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXpolicyMapping_SetSubjectDomainPolicy +( + NSSPKIXpolicyMapping *policyMapping, + NSSPKIXCertPolicyId *subjectDomainPolicy +); + +/* + * nssPKIXpolicyMapping_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXpolicyMapping_Equal +( + NSSPKIXpolicyMapping *policyMapping1, + NSSPKIXpolicyMapping *policyMapping2, + PRStatus *statusOpt +); + +/* + * nssPKIXpolicyMapping_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXpolicyMapping upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXpolicyMapping * +nssPKIXpolicyMapping_Duplicate +( + NSSPKIXpolicyMapping *policyMapping, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXpolicyMapping_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXpolicyMapping + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_MAPPING + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXpolicyMapping_verifyPointer +( + NSSPKIXpolicyMapping *p +); +#endif /* DEBUG */ + +/* + * GeneralName + * + * This structure contains a union of the possible general names, + * of which there are several. + * + * From RFC 2459: + * + * GeneralName ::= CHOICE { + * otherName [0] AnotherName, + * rfc822Name [1] IA5String, + * dNSName [2] IA5String, + * x400Address [3] ORAddress, + * directoryName [4] Name, + * ediPartyName [5] EDIPartyName, + * uniformResourceIdentifier [6] IA5String, + * iPAddress [7] OCTET STRING, + * registeredID [8] OBJECT IDENTIFIER } + * + * The private calls for this type: + * + * nssPKIXGeneralName_Decode + * nssPKIXGeneralName_CreateFromUTF8 + * nssPKIXGeneralName_Create + * nssPKIXGeneralName_CreateFromOtherName + * nssPKIXGeneralName_CreateFromRfc822Name + * nssPKIXGeneralName_CreateFromDNSName + * nssPKIXGeneralName_CreateFromX400Address + * nssPKIXGeneralName_CreateFromDirectoryName + * nssPKIXGeneralName_CreateFromEDIPartyName + * nssPKIXGeneralName_CreateFromUniformResourceIdentifier + * nssPKIXGeneralName_CreateFromIPAddress + * nssPKIXGeneralName_CreateFromRegisteredID + * nssPKIXGeneralName_Destroy + * nssPKIXGeneralName_Encode + * nssPKIXGeneralName_GetUTF8Encoding + * nssPKIXGeneralName_GetChoice + * nssPKIXGeneralName_GetOtherName + * nssPKIXGeneralName_GetRfc822Name + * nssPKIXGeneralName_GetDNSName + * nssPKIXGeneralName_GetX400Address + * nssPKIXGeneralName_GetDirectoryName + * nssPKIXGeneralName_GetEDIPartyName + * nssPKIXGeneralName_GetUniformResourceIdentifier + * nssPKIXGeneralName_GetIPAddress + * nssPKIXGeneralName_GetRegisteredID + * nssPKIXGeneralName_GetSpecifiedChoice + * nssPKIXGeneralName_Equal + * nssPKIXGeneralName_Duplicate + * (in pki1 I had specific attribute value gettors here too) + * + * In debug builds, the following call is available: + * + * nssPKIXGeneralName_verifyPointer + * + */ + +/* + * nssPKIXGeneralName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXGeneralName_CreateFromUTF8 + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_STRING + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromUTF8 +( + NSSArena *arenaOpt, + NSSUTF8 *utf8 +); + +/* + * nssPKIXGeneralName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME_CHOICE + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_INVALID_PKIX_IA5_STRING + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * NSS_ERROR_INVALID_PKIX_NAME + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ITEM + * NSS_ERROR_INVALID_OID + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_Create +( + NSSArena *arenaOpt, + NSSPKIXGeneralNameChoice choice, + void *content +); + +/* + * nssPKIXGeneralName_CreateFromOtherName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromOtherName +( + NSSArena *arenaOpt, + NSSPKIXAnotherName *otherName +); + +/* + * nssPKIXGeneralName_CreateFromRfc822Name + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_IA5_STRING + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromRfc822Name +( + NSSArena *arenaOpt, + NSSUTF8 *rfc822Name +); + +/* + * nssPKIXGeneralName_CreateFromDNSName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_IA5_STRING + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromDNSName +( + NSSArena *arenaOpt, + NSSUTF8 *dNSName +); + +/* + * nssPKIXGeneralName_CreateFromX400Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_OR_ADDRESS + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromX400Address +( + NSSArena *arenaOpt, + NSSPKIXORAddress *x400Address +); + +/* + * nssPKIXGeneralName_CreateFromDirectoryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_NAME + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromDirectoryName +( + NSSArena *arenaOpt, + NSSPKIXName *directoryName +); + +/* + * nssPKIXGeneralName_CreateFromEDIPartyName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromEDIPartyName +( + NSSArena *arenaOpt, + NSSPKIXEDIPartyName *ediPartyname +); + +/* + * nssPKIXGeneralName_CreateFromUniformResourceIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_IA5_STRING + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromUniformResourceIdentifier +( + NSSArena *arenaOpt, + NSSUTF8 *uniformResourceIdentifier +); + +/* + * nssPKIXGeneralName_CreateFromIPAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromIPAddress +( + NSSArena *arenaOpt, + NSSItem *iPAddress +); + +/* + * nssPKIXGeneralName_CreateFromRegisteredID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_CreateFromRegisteredID +( + NSSArena *arenaOpt, + NSSOID *registeredID +); + +/* + * nssPKIXGeneralName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralName_Destroy +( + NSSPKIXGeneralName *generalName +); + +/* + * nssPKIXGeneralName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXGeneralName_Encode +( + NSSPKIXGeneralName *generalName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetUTF8Encoding + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXGeneralName_GetUTF8Encoding +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * A valid NSSPKIXGeneralNameChoice value upon success + * NSSPKIXGeneralNameChoice_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNameChoice +nssPKIXGeneralName_GetChoice +( + NSSPKIXGeneralName *generalName +); + +/* + * nssPKIXGeneralName_GetOtherName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAnotherName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAnotherName * +nssPKIXGeneralName_GetOtherName +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetRfc822Name + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXGeneralName_GetRfc822Name +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetDNSName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXGeneralName_GetDNSName +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetX400Address + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXORAddress upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXORAddress * +nssPKIXGeneralName_GetX400Address +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetDirectoryName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXName * +nssPKIXGeneralName_GetDirectoryName +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetEDIPartyName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXEDIPartyName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXEDIPartyName * +nssPKIXGeneralName_GetEDIPartyName +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetUniformResourceIdentifier + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXGeneralName_GetUniformResourceIdentifier +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetIPAddress + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +nssPKIXGeneralName_GetIPAddress +( + NSSPKIXGeneralName *generalName, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_GetRegisteredID + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSOID upon success + * NULL upon failure + */ + +NSS_EXTERN NSSOID * +nssPKIXGeneralName_GetRegisteredID +( + NSSPKIXGeneralName *generalName +); + +/* + * nssPKIXGeneralName_GetSpecifiedChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer upon success + * NULL upon failure + */ + +NSS_EXTERN void * +nssPKIXGeneralName_GetSpecifiedChoice +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXGeneralName_Equal +( + NSSPKIXGeneralName *generalName1, + NSSPKIXGeneralName *generalName2, + PRStatus *statusOpt +); + +/* + * nssPKIXGeneralName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralName_Duplicate +( + NSSPKIXGeneralName *generalName, + NSSArena *arenaOpt +); + +/* + * (in pki1 I had specific attribute value gettors here too) + * + */ + +#ifdef DEBUG +/* + * nssPKIXGeneralName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXGeneralName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralName_verifyPointer +( + NSSPKIXGeneralName *p +); +#endif /* DEBUG */ + +/* + * GeneralNames + * + * This structure contains a sequence of GeneralName objects. + * + * From RFC 2459: + * + * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName + * + * The private calls for this type: + * + * nssPKIXGeneralNames_Decode + * nssPKIXGeneralNames_Create + * nssPKIXGeneralNames_Destroy + * nssPKIXGeneralNames_Encode + * nssPKIXGeneralNames_GetGeneralNameCount + * nssPKIXGeneralNames_GetGeneralNames + * nssPKIXGeneralNames_SetGeneralNames + * nssPKIXGeneralNames_GetGeneralName + * nssPKIXGeneralNames_SetGeneralName + * nssPKIXGeneralNames_InsertGeneralName + * nssPKIXGeneralNames_AppendGeneralName + * nssPKIXGeneralNames_RemoveGeneralName + * nssPKIXGeneralNames_FindGeneralName + * nssPKIXGeneralNames_Equal + * nssPKIXGeneralNames_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXGeneralNames_verifyPointer + * + */ + +/* + * nssPKIXGeneralNames_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +nssPKIXGeneralNames_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXGeneralNames_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +nssPKIXGeneralNames_Create +( + NSSArena *arenaOpt, + NSSPKIXGeneralName *generalName1, + ... +); + +/* + * nssPKIXGeneralNames_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralNames_Destroy +( + NSSPKIXGeneralNames *generalNames +); + +/* + * nssPKIXGeneralNames_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXGeneralNames_Encode +( + NSSPKIXGeneralNames *generalNames, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralNames_GetGeneralNameCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXGeneralNames_GetGeneralNameCount +( + NSSPKIXGeneralNames *generalNames +); + +/* + * nssPKIXGeneralNames_GetGeneralNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXGeneralName pointers upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName ** +nssPKIXGeneralNames_GetGeneralNames +( + NSSPKIXGeneralNames *generalNames, + NSSPKIXGeneralName *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralNames_SetGeneralNames + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralNames_SetGeneralNames +( + NSSPKIXGeneralNames *generalNames, + NSSPKIXGeneralName *generalName[], + PRInt32 count +); + +/* + * nssPKIXGeneralNames_GetGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralNames_GetGeneralName +( + NSSPKIXGeneralNames *generalNames, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralNames_SetGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralNames_SetGeneralName +( + NSSPKIXGeneralNames *generalNames, + PRInt32 i, + NSSPKIXGeneralName *generalName +); + +/* + * nssPKIXGeneralNames_InsertGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralNames_InsertGeneralName +( + NSSPKIXGeneralNames *generalNames, + PRInt32 i, + NSSPKIXGeneralName *generalName +); + +/* + * nssPKIXGeneralNames_AppendGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralNames_AppendGeneralName +( + NSSPKIXGeneralNames *generalNames, + NSSPKIXGeneralName *generalName +); + +/* + * nssPKIXGeneralNames_RemoveGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralNames_RemoveGeneralName +( + NSSPKIXGeneralNames *generalNames, + PRInt32 i +); + +/* + * nssPKIXGeneralNames_FindGeneralName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXGeneralNames_FindGeneralName +( + NSSPKIXGeneralNames *generalNames, + NSSPKIXGeneralName *generalName +); + +/* + * nssPKIXGeneralNames_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXGeneralNames_Equal +( + NSSPKIXGeneralNames *generalNames1, + NSSPKIXGeneralNames *generalNames2, + PRStatus *statusOpt +); + +/* + * nssPKIXGeneralNames_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +nssPKIXGeneralNames_Duplicate +( + NSSPKIXGeneralNames *generalNames, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXGeneralNames_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXGeneralNames + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralNames_verifyPointer +( + NSSPKIXGeneralNames *p +); +#endif /* DEBUG */ + +/* + * AnotherName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AnotherName ::= SEQUENCE { + * type-id OBJECT IDENTIFIER, + * value [0] EXPLICIT ANY DEFINED BY type-id } + * + * The private calls for this type: + * + * nssPKIXAnotherName_Decode + * nssPKIXAnotherName_Create + * nssPKIXAnotherName_Destroy + * nssPKIXAnotherName_Encode + * nssPKIXAnotherName_GetTypeId + * nssPKIXAnotherName_SetTypeId + * nssPKIXAnotherName_GetValue + * nssPKIXAnotherName_SetValue + * nssPKIXAnotherName_Equal + * nssPKIXAnotherName_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXAnotherName_verifyPointer + * + */ + +/* + * nssPKIXAnotherName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAnotherName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAnotherName * +nssPKIXAnotherName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXAnotherName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAnotherName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAnotherName * +nssPKIXAnotherName_Create +( + NSSArena *arenaOpt, + NSSOID *typeId, + NSSItem *value +); + +/* + * nssPKIXAnotherName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAnotherName_Destroy +( + NSSPKIXAnotherName *anotherName +); + +/* + * nssPKIXAnotherName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXAnotherName_Encode +( + NSSPKIXAnotherName *anotherName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAnotherName_GetTypeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSOID upon success + * NULL upon failure + */ + +NSS_EXTERN NSSOID * +nssPKIXAnotherName_GetTypeId +( + NSSPKIXAnotherName *anotherName +); + +/* + * nssPKIXAnotherName_SetTypeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_INVALID_OID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAnotherName_SetTypeId +( + NSSPKIXAnotherName *anotherName, + NSSOID *typeId +); + +/* + * nssPKIXAnotherName_GetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSItem upon success + * NULL upon failure + */ + +NSS_EXTERN NSSItem * +nssPKIXAnotherName_GetValue +( + NSSPKIXAnotherName *anotherName, + NSSItem *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAnotherName_SetValue + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAnotherName_SetValue +( + NSSPKIXAnotherName *anotherName, + NSSItem *value +); + +/* + * nssPKIXAnotherName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXAnotherName_Equal +( + NSSPKIXAnotherName *anotherName1, + NSSPKIXAnotherName *anotherName2, + PRStatus *statusOpt +); + +/* + * nssPKIXAnotherName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAnotherName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAnotherName * +nssPKIXAnotherName_Duplicate +( + NSSPKIXAnotherName *anotherName, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXAnotherName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXAnotherName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ANOTHER_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXAnotherName_verifyPointer +( + NSSPKIXAnotherName *p +); +#endif /* DEBUG */ + +/* + * EDIPartyName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * + * EDIPartyName ::= SEQUENCE { + * nameAssigner [0] DirectoryString OPTIONAL, + * partyName [1] DirectoryString } + * + * The private calls for this type: + * + * nssPKIXEDIPartyName_Decode + * nssPKIXEDIPartyName_Create + * nssPKIXEDIPartyName_Destroy + * nssPKIXEDIPartyName_Encode + * nssPKIXEDIPartyName_HasNameAssigner + * nssPKIXEDIPartyName_GetNameAssigner + * nssPKIXEDIPartyName_SetNameAssigner + * nssPKIXEDIPartyName_RemoveNameAssigner + * nssPKIXEDIPartyName_GetPartyName + * nssPKIXEDIPartyName_SetPartyName + * nssPKIXEDIPartyName_Equal + * nssPKIXEDIPartyName_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXEDIPartyName_verifyPointer + * + */ + +/* + * nssPKIXEDIPartyName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXEDIPartyName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXEDIPartyName * +nssPKIXEDIPartyName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXEDIPartyName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_STRING + * + * Return value: + * A valid pointer to an NSSPKIXEDIPartyName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXEDIPartyName * +nssPKIXEDIPartyName_Create +( + NSSArena *arenaOpt, + NSSUTF8 *nameAssignerOpt, + NSSUTF8 *partyName +); + +/* + * nssPKIXEDIPartyName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXEDIPartyName_Destroy +( + NSSPKIXEDIPartyName *ediPartyName +); + +/* + * nssPKIXEDIPartyName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXEDIPartyName_Encode +( + NSSPKIXEDIPartyName *ediPartyName, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXEDIPartyName_HasNameAssigner + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXEDIPartyName_HasNameAssigner +( + NSSPKIXEDIPartyName *ediPartyName +); + +/* + * nssPKIXEDIPartyName_GetNameAssigner + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_HAS_NO_NAME_ASSIGNER + * + * Return value: + * A valid pointer to an NSSUTF8 string upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXEDIPartyName_GetNameAssigner +( + NSSPKIXEDIPartyName *ediPartyName, + NSSArena *arenaOpt +); + +/* + * nssPKIXEDIPartyName_SetNameAssigner + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXEDIPartyName_SetNameAssigner +( + NSSPKIXEDIPartyName *ediPartyName, + NSSUTF8 *nameAssigner +); + +/* + * nssPKIXEDIPartyName_RemoveNameAssigner + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_HAS_NO_NAME_ASSIGNER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXEDIPartyName_RemoveNameAssigner +( + NSSPKIXEDIPartyName *ediPartyName +); + +/* + * nssPKIXEDIPartyName_GetPartyName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSUTF8 string upon success + * NULL upon failure + */ + +NSS_EXTERN NSSUTF8 * +nssPKIXEDIPartyName_GetPartyName +( + NSSPKIXEDIPartyName *ediPartyName, + NSSArena *arenaOpt +); + +/* + * nssPKIXEDIPartyName_SetPartyName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_STRING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXEDIPartyName_SetPartyName +( + NSSPKIXEDIPartyName *ediPartyName, + NSSUTF8 *partyName +); + +/* + * nssPKIXEDIPartyName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXEDIPartyName_Equal +( + NSSPKIXEDIPartyName *ediPartyName1, + NSSPKIXEDIPartyName *ediPartyName2, + PRStatus *statusOpt +); + +/* + * nssPKIXEDIPartyName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXEDIPartyName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXEDIPartyName * +nssPKIXEDIPartyName_Duplicate +( + NSSPKIXEDIPartyName *ediPartyName, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXEDIPartyName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXEDIPartyName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXEDIPartyName_verifyPointer +( + NSSPKIXEDIPartyName *p +); +#endif /* DEBUG */ + +/* + * SubjectDirectoryAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute + * + * The private calls for this type: + * + * nssPKIXSubjectDirectoryAttributes_Decode + * nssPKIXSubjectDirectoryAttributes_Create + * nssPKIXSubjectDirectoryAttributes_Destroy + * nssPKIXSubjectDirectoryAttributes_Encode + * nssPKIXSubjectDirectoryAttributes_GetAttributeCount + * nssPKIXSubjectDirectoryAttributes_GetAttributes + * nssPKIXSubjectDirectoryAttributes_SetAttributes + * nssPKIXSubjectDirectoryAttributes_GetAttribute + * nssPKIXSubjectDirectoryAttributes_SetAttribute + * nssPKIXSubjectDirectoryAttributes_InsertAttribute + * nssPKIXSubjectDirectoryAttributes_AppendAttribute + * nssPKIXSubjectDirectoryAttributes_RemoveAttribute + * nssPKIXSubjectDirectoryAttributes_FindAttribute + * nssPKIXSubjectDirectoryAttributes_Equal + * nssPKIXSubjectDirectoryAttributes_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXSubjectDirectoryAttributes_verifyPointer + * + */ + +/* + * nssPKIXSubjectDirectoryAttributes_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXSubjectDirectoryAttributes upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectDirectoryAttributes * +nssPKIXSubjectDirectoryAttributes_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXSubjectDirectoryAttributes_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * + * Return value: + * A valid pointer to an NSSPKIXSubjectDirectoryAttributes upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectDirectoryAttributes * +nssPKIXSubjectDirectoryAttributes_Create +( + NSSArena *arenaOpt, + NSSPKIXAttribute *attribute1, + ... +); + +/* + * nssPKIXSubjectDirectoryAttributes_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectDirectoryAttributes_Destroy +( + NSSPKIXSubjectDirectoryAttributes *sda +); + +/* + * nssPKIXSubjectDirectoryAttributes_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXSubjectDirectoryAttributes_Encode +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXSubjectDirectoryAttributes_GetAttributeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXSubjectDirectoryAttributes_GetAttributeCount +( + NSSPKIXSubjectDirectoryAttributes *sda +); + +/* + * nssPKIXSubjectDirectoryAttributes_GetAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXAttribute pointers upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAttribute ** +nssPKIXSubjectDirectoryAttributes_GetAttributes +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSPKIXAttribute *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXSubjectDirectoryAttributes_SetAttributes + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectDirectoryAttributes_SetAttributes +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSAttribute *attributes[], + PRInt32 count +); + +/* + * nssPKIXSubjectDirectoryAttributes_GetAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon error + */ + +NSS_EXTERN NSSPKIXAttribute * +nssPKIXSubjectDirectoryAttributes_GetAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXSubjectDirectoryAttributes_SetAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectDirectoryAttributes_SetAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + PRInt32 i, + NSSPKIXAttribute *attribute +); + +/* + * nssPKIXSubjectDirectoryAttributes_InsertAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectDirectoryAttributes_InsertAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + PRInt32 i, + NSSPKIXAttribute *attribute +); + +/* + * nssPKIXSubjectDirectoryAttributes_AppendAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_PKIX_ATTRIBUTE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectDirectoryAttributes_AppendAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSPKIXAttribute *attribute +); + +/* + * nssPKIXSubjectDirectoryAttributes_RemoveAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectDirectoryAttributes_RemoveAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + PRInt32 i +); + +/* + * nssPKIXSubjectDirectoryAttributes_FindAttribute + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_ATTRIBUTE + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXSubjectDirectoryAttributes_FindAttribute +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSPKIXAttribute *attribute +); + +/* + * nssPKIXSubjectDirectoryAttributes_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXSubjectDirectoryAttributes_Equal +( + NSSPKIXSubjectDirectoryAttributes *sda1, + NSSPKIXSubjectDirectoryAttributes *sda2, + PRStatus *statusOpt +); + +/* + * nssPKIXSubjectDirectoryAttributes_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXSubjectDirectoryAttributes upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXSubjectDirectoryAttributes * +nssPKIXSubjectDirectoryAttributes_Duplicate +( + NSSPKIXSubjectDirectoryAttributes *sda, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXSubjectDirectoryAttributes_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXSubjectDirectoryAttributes + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_SUBJECT_DIRECTORY_ATTRIBUTES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXSubjectDirectoryAttributes_verifyPointer +( + NSSPKIXSubjectDirectoryAttributes *p +); +#endif /* DEBUG */ + +/* + * BasicConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BasicConstraints ::= SEQUENCE { + * cA BOOLEAN DEFAULT FALSE, + * pathLenConstraint INTEGER (0..MAX) OPTIONAL } + * + * The private calls for this type: + * + * nssPKIXBasicConstraints_Decode + * nssPKIXBasicConstraints_Create + * nssPKIXBasicConstraints_Destroy + * nssPKIXBasicConstraints_Encode + * nssPKIXBasicConstraints_GetCA + * nssPKIXBasicConstraints_SetCA + * nssPKIXBasicConstraints_HasPathLenConstraint + * nssPKIXBasicConstraints_GetPathLenConstraint + * nssPKIXBasicConstraints_SetPathLenConstraint + * nssPKIXBasicConstraints_RemovePathLenConstraint + * nssPKIXBasicConstraints_Equal + * nssPKIXBasicConstraints_Duplicate + * nssPKIXBasicConstraints_CompareToPathLenConstraint + * + * In debug builds, the following call is available: + * + * nssPKIXBasicConstraints_verifyPointer + * + */ + +/* + * nssPKIXBasicConstraints_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXBasicConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBasicConstraints * +nssPKIXBasicConstraints_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXBasicConstraints_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * A valid pointer to an NSSPKIXBasicConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBasicConstraints * +nssPKIXBasicConstraints_Create +( + NSSArena *arenaOpt, + PRBool ca, + PRInt32 pathLenConstraint +); + +/* + * nssPKIXBasicConstraints_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBasicConstraints_Destroy +( + NSSPKIXBasicConstraints *basicConstraints +); + +/* + * nssPKIXBasicConstraints_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXBasicConstraints_Encode +( + NSSPKIXBasicConstraints *basicConstraints, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXBasicConstraints_GetCA + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_TRUE if the CA bit is true + * PR_FALSE if it isn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBasicConstraints_GetCA +( + NSSPKIXBasicConstraints *basicConstraints, + PRStatus *statusOpt +); + +/* + * nssPKIXBasicConstraints_SetCA + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBasicConstraints_SetCA +( + NSSPKIXBasicConstraints *basicConstraints, + PRBool ca +); + +/* + * nssPKIXBasicConstraints_HasPathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXBasicConstraints_HasPathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints, + PRStatus *statusOpt +); + +/* + * nssPKIXBasicConstraints_GetPathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_HAS_NO_PATH_LEN_CONSTRAINT + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXBasicConstraints_GetPathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints +); + +/* + * nssPKIXBasicConstraints_SetPathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBasicConstraints_SetPathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints, + PRInt32 pathLenConstraint +); + +/* + * nssPKIXBasicConstraints_RemovePathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_HAS_NO_PATH_LEN_CONSTRAINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXBasicConstraints_RemovePathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints +); + +/* + * nssPKIXBasicConstraints_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXBasicConstraints_Equal +( + NSSPKIXBasicConstraints *basicConstraints1, + NSSPKIXBasicConstraints *basicConstraints2, + PRStatus *statusOpt +); + +/* + * nssPKIXBasicConstraints_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXBasicConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXBasicConstraints * +nssPKIXBasicConstraints_Duplicate +( + NSSPKIXBasicConstraints *basicConstraints, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXBasicConstraints_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXBasicConstraints + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXBasicConstraints_verifyPointer +( + NSSPKIXBasicConstraints *p +); +#endif /* DEBUG */ + +/* + * nssPKIXBasicConstraints_CompareToPathLenConstraint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_BASIC_CONSTRAINTS + * NSS_ERROR_HAS_NO_PATH_LEN_CONSTRAINT + * + * Return value: + * 1 if the specified value is greater than the pathLenConstraint + * 0 if the specified value equals the pathLenConstraint + * -1 if the specified value is less than the pathLenConstraint + * -2 upon error + */ + +NSS_EXTERN PRInt32 +nssPKIXBasicConstraints_CompareToPathLenConstraint +( + NSSPKIXBasicConstraints *basicConstraints, + PRInt32 value +); + +/* + * NameConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NameConstraints ::= SEQUENCE { + * permittedSubtrees [0] GeneralSubtrees OPTIONAL, + * excludedSubtrees [1] GeneralSubtrees OPTIONAL } + * + * The private calls for this type: + * + * nssPKIXNameConstraints_Decode + * nssPKIXNameConstraints_Create + * nssPKIXNameConstraints_Destroy + * nssPKIXNameConstraints_Encode + * nssPKIXNameConstraints_HasPermittedSubtrees + * nssPKIXNameConstraints_GetPermittedSubtrees + * nssPKIXNameConstraints_SetPermittedSubtrees + * nssPKIXNameConstraints_RemovePermittedSubtrees + * nssPKIXNameConstraints_HasExcludedSubtrees + * nssPKIXNameConstraints_GetExcludedSubtrees + * nssPKIXNameConstraints_SetExcludedSubtrees + * nssPKIXNameConstraints_RemoveExcludedSubtrees + * nssPKIXNameConstraints_Equal + * nssPKIXNameConstraints_Duplicate + * { and the comparator functions } + * + * In debug builds, the following call is available: + * + * nssPKIXNameConstraints_verifyPointer + * + */ + +/* + * nssPKIXNameConstraints_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXNameConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNameConstraints * +nssPKIXNameConstraints_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXNameConstraints_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * + * Return value: + * A valid pointer to an NSSPKIXNameConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNameConstraints * +nssPKIXNameConstraints_Create +( + NSSArena *arenaOpt, + NSSPKIXGeneralSubtrees *permittedSubtrees, + NSSPKIXGeneralSubtrees *excludedSubtrees +); + +/* + * nssPKIXNameConstraints_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNameConstraints_Destroy +( + NSSPKIXNameConstraints *nameConstraints +); + +/* + * nssPKIXNameConstraints_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXNameConstraints_Encode +( + NSSPKIXNameConstraints *nameConstraints, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXNameConstraints_HasPermittedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXNameConstraints_HasPermittedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + PRStatus *statusOpt +); + +/* + * nssPKIXNameConstraints_GetPermittedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_HAS_NO_PERMITTED_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +nssPKIXNameConstraints_GetPermittedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + NSSArena *arenaOpt +); + +/* + * nssPKIXNameConstraints_SetPermittedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNameConstraints_SetPermittedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + NSSPKIXGeneralSubtrees *permittedSubtrees +); + +/* + * nssPKIXNameConstraints_RemovePermittedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_HAS_NO_PERMITTED_SUBTREES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNameConstraints_RemovePermittedSubtrees +( + NSSPKIXNameConstraints *nameConstraints +); + +/* + * nssPKIXNameConstraints_HasExcludedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXNameConstraints_HasExcludedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + PRStatus *statusOpt +); + +/* + * nssPKIXNameConstraints_GetExcludedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_HAS_NO_EXCLUDED_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +nssPKIXNameConstraints_GetExcludedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + NSSArena *arenaOpt +); + +/* + * nssPKIXNameConstraints_SetExcludedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNameConstraints_SetExcludedSubtrees +( + NSSPKIXNameConstraints *nameConstraints, + NSSPKIXGeneralSubtrees *excludedSubtrees +); + +/* + * nssPKIXNameConstraints_RemoveExcludedSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_HAS_NO_EXCLUDED_SUBTREES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXNameConstraints_RemoveExcludedSubtrees +( + NSSPKIXNameConstraints *nameConstraints +); + +/* + * nssPKIXNameConstraints_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXNameConstraints_Equal +( + NSSPKIXNameConstraints *nameConstraints1, + NSSPKIXNameConstraints *nameConstraints2, + PRStatus *statusOpt +); + +/* + * nssPKIXNameConstraints_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXNameConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXNameConstraints * +nssPKIXNameConstraints_Duplicate +( + NSSPKIXNameConstraints *nameConstraints, + NSSArena *arenaOpt +); + +/* + * { and the comparator functions } + * + */ + +#ifdef DEBUG +/* + * nssPKIXNameConstraints_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXNameConstraints + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_NAME_CONSTRAINTS + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXNameConstraints_verifyPointer +( + NSSPKIXNameConstraints *p +); +#endif /* DEBUG */ + +/* + * GeneralSubtrees + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree + * + * The private calls for this type: + * + * nssPKIXGeneralSubtrees_Decode + * nssPKIXGeneralSubtrees_Create + * nssPKIXGeneralSubtrees_Destroy + * nssPKIXGeneralSubtrees_Encode + * nssPKIXGeneralSubtrees_GetGeneralSubtreeCount + * nssPKIXGeneralSubtrees_GetGeneralSubtrees + * nssPKIXGeneralSubtrees_SetGeneralSubtrees + * nssPKIXGeneralSubtrees_GetGeneralSubtree + * nssPKIXGeneralSubtrees_SetGeneralSubtree + * nssPKIXGeneralSubtrees_InsertGeneralSubtree + * nssPKIXGeneralSubtrees_AppendGeneralSubtree + * nssPKIXGeneralSubtrees_RemoveGeneralSubtree + * nssPKIXGeneralSubtrees_FindGeneralSubtree + * nssPKIXGeneralSubtrees_Equal + * nssPKIXGeneralSubtrees_Duplicate + * { and finders and comparators } + * + * In debug builds, the following call is available: + * + * nssPKIXGeneralSubtrees_verifyPointer + * + */ + +/* + * nssPKIXGeneralSubtrees_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +nssPKIXGeneralSubtrees_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXGeneralSubtrees_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +nssPKIXGeneralSubtrees_Create +( + NSSArena *arenaOpt, + NSSPKIXGeneralSubtree *generalSubtree1, + ... +); + +/* + * nssPKIXGeneralSubtrees_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtrees_Destroy +( + NSSPKIXGeneralSubtrees *generalSubtrees +); + +/* + * nssPKIXGeneralSubtrees_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXGeneralSubtrees_Encode +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralSubtrees_GetGeneralSubtreeCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXGeneralSubtrees_GetGeneralSubtreeCount +( + NSSPKIXGeneralSubtrees *generalSubtrees +); + +/* + * nssPKIXGeneralSubtrees_GetGeneralSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXGeneralSubtree pointers upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree ** +nssPKIXGeneralSubtrees_GetGeneralSubtrees +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSPKIXGeneralSubtree *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralSubtrees_SetGeneralSubtrees + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtrees_SetGeneralSubtrees +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSPKIXGeneralSubtree *generalSubtree[], + PRInt32 count +); + +/* + * nssPKIXGeneralSubtrees_GetGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtree upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree * +nssPKIXGeneralSubtrees_GetGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralSubtrees_SetGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtrees_SetGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + PRInt32 i, + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtrees_InsertGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtrees_InsertGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + PRInt32 i, + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtrees_AppendGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtrees_AppendGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtrees_RemoveGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtrees_RemoveGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + PRInt32 i +); + +/* + * nssPKIXGeneralSubtrees_FindGeneralSubtree + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXGeneralSubtrees_FindGeneralSubtree +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtrees_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXGeneralSubtrees_Equal +( + NSSPKIXGeneralSubtrees *generalSubtrees1, + NSSPKIXGeneralSubtrees *generalSubtrees2, + PRStatus *statusOpt +); + +/* + * nssPKIXGeneralSubtrees_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtrees upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtrees * +nssPKIXGeneralSubtrees_Duplicate +( + NSSPKIXGeneralSubtrees *generalSubtrees, + NSSArena *arenaOpt +); + +/* + * { and finders and comparators } + * + */ + +#ifdef DEBUG +/* + * nssPKIXGeneralSubtrees_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXGeneralSubtrees + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREES + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtrees_verifyPointer +( + NSSPKIXGeneralSubtrees *p +); +#endif /* DEBUG */ + +/* + * GeneralSubtree + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * GeneralSubtree ::= SEQUENCE { + * base GeneralName, + * minimum [0] BaseDistance DEFAULT 0, + * maximum [1] BaseDistance OPTIONAL } + * + * The private calls for this type: + * + * nssPKIXGeneralSubtree_Decode + * nssPKIXGeneralSubtree_Create + * nssPKIXGeneralSubtree_Destroy + * nssPKIXGeneralSubtree_Encode + * nssPKIXGeneralSubtree_GetBase + * nssPKIXGeneralSubtree_SetBase + * nssPKIXGeneralSubtree_GetMinimum + * nssPKIXGeneralSubtree_SetMinimum + * nssPKIXGeneralSubtree_HasMaximum + * nssPKIXGeneralSubtree_GetMaximum + * nssPKIXGeneralSubtree_SetMaximum + * nssPKIXGeneralSubtree_RemoveMaximum + * nssPKIXGeneralSubtree_Equal + * nssPKIXGeneralSubtree_Duplicate + * nssPKIXGeneralSubtree_DistanceInRange + * {other tests and comparators} + * + * In debug builds, the following call is available: + * + * nssPKIXGeneralSubtree_verifyPointer + * + */ + +/* + * nssPKIXGeneralSubtree_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtree upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree * +nssPKIXGeneralSubtree_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXGeneralSubtree_Create + * + * -- fgmr comments -- + * The optional maximum value may be omitted by specifying -1. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtree upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree * +nssPKIXGeneralSubtree_Create +( + NSSArena *arenaOpt, + NSSPKIXBaseDistance minimum, + NSSPKIXBaseDistance maximumOpt +); + +/* + * nssPKIXGeneralSubtree_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtree_Destroy +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtree_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXGeneralSubtree_Encode +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralSubtree_GetBase + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXGeneralSubtree_GetBase +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSArena *arenaOpt +); + +/* + * nssPKIXGeneralSubtree_SetBase + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtree_SetBase +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSPKIXGeneralName *base +); + +/* + * nssPKIXGeneralSubtree_GetMinimum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN NSSPKIXBaseDistance +nssPKIXGeneralSubtree_GetMinimum +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtree_SetMinimum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtree_SetMinimum +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSPKIXBaseDistance *minimum +); + +/* + * nssPKIXGeneralSubtree_HasMaximum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXGeneralSubtree_HasMaximum +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtree_GetMaximum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_HAS_NO_MAXIMUM_BASE_DISTANCE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN NSSPKIXBaseDistance +nssPKIXGeneralSubtree_GetMaximum +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtree_SetMaximum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtree_SetMaximum +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSPKIXBaseDistance *maximum +); + +/* + * nssPKIXGeneralSubtree_RemoveMaximum + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_HAS_NO_MAXIMUM_BASE_DISTANCE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtree_RemoveMaximum +( + NSSPKIXGeneralSubtree *generalSubtree +); + +/* + * nssPKIXGeneralSubtree_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXGeneralSubtree_Equal +( + NSSPKIXGeneralSubtree *generalSubtree1, + NSSPKIXGeneralSubtree *generalSubtree2, + PRStatus *statusOpt +); + +/* + * nssPKIXGeneralSubtree_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXGeneralSubtree upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralSubtree * +nssPKIXGeneralSubtree_Duplicate +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXGeneralSubtree_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXGeneralSubtree + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXGeneralSubtree_verifyPointer +( + NSSPKIXGeneralSubtree *p +); +#endif /* DEBUG */ + +/* + * nssPKIXGeneralSubtree_DistanceInRange + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_GENERAL_SUBTREE + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_TRUE if the specified value is within the minimum and maximum + * base distances + * PR_FALSE if it isn't + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXGeneralSubtree_DistanceInRange +( + NSSPKIXGeneralSubtree *generalSubtree, + NSSPKIXBaseDistance value, + PRStatus *statusOpt +); + +/* + * {other tests and comparators} + * + */ + +/* + * PolicyConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyConstraints ::= SEQUENCE { + * requireExplicitPolicy [0] SkipCerts OPTIONAL, + * inhibitPolicyMapping [1] SkipCerts OPTIONAL } + * + * The private calls for this type: + * + * nssPKIXPolicyConstraints_Decode + * nssPKIXPolicyConstraints_Create + * nssPKIXPolicyConstraints_Destroy + * nssPKIXPolicyConstraints_Encode + * nssPKIXPolicyConstraints_HasRequireExplicitPolicy + * nssPKIXPolicyConstraints_GetRequireExplicitPolicy + * nssPKIXPolicyConstraints_SetRequireExplicitPolicy + * nssPKIXPolicyConstraints_RemoveRequireExplicitPolicy + * nssPKIXPolicyConstraints_HasInhibitPolicyMapping + * nssPKIXPolicyConstraints_GetInhibitPolicyMapping + * nssPKIXPolicyConstraints_SetInhibitPolicyMapping + * nssPKIXPolicyConstraints_RemoveInhibitPolicyMapping + * nssPKIXPolicyConstraints_Equal + * nssPKIXPolicyConstraints_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXPolicyConstraints_verifyPointer + * + */ + +/* + * nssPKIXPolicyConstraints_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyConstraints * +nssPKIXPolicyConstraints_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXPolicyConstraints_Create + * + * -- fgmr comments -- + * The optional values may be omitted by specifying -1. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * A valid pointer to an NSSPKIXPolicyConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyConstraints * +nssPKIXPolicyConstraints_Create +( + NSSArena *arenaOpt, + NSSPKIXSkipCerts requireExplicitPolicy, + NSSPKIXSkipCerts inhibitPolicyMapping +); + +/* + * nssPKIXPolicyConstraints_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyConstraints_Destroy +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * nssPKIXPolicyConstraints_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXPolicyConstraints_Encode +( + NSSPKIXPolicyConstraints *policyConstraints, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXPolicyConstraints_HasRequireExplicitPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPolicyConstraints_HasRequireExplicitPolicy +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * nssPKIXPolicyConstraints_GetRequireExplicitPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_HAS_NO_REQUIRE_EXPLICIT_POLICY + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXPolicyConstraints_GetRequireExplicitPolicy +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * nssPKIXPolicyConstraints_SetRequireExplicitPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyConstraints_SetRequireExplicitPolicy +( + NSSPKIXPolicyConstraints *policyConstraints, + NSSPKIXSkipCerts requireExplicitPolicy +); + +/* + * nssPKIXPolicyConstraints_RemoveRequireExplicitPolicy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_HAS_NO_REQUIRE_EXPLICIT_POLICY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyConstraints_RemoveRequireExplicitPolicy +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * nssPKIXPolicyConstraints_HasInhibitPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXPolicyConstraints_HasInhibitPolicyMapping +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * nssPKIXPolicyConstraints_GetInhibitPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_HAS_NO_INHIBIT_POLICY_MAPPING + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXPolicyConstraints_GetInhibitPolicyMapping +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * nssPKIXPolicyConstraints_SetInhibitPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_INVALID_VALUE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyConstraints_SetInhibitPolicyMapping +( + NSSPKIXPolicyConstraints *policyConstraints, + NSSPKIXSkipCerts inhibitPolicyMapping +); + +/* + * nssPKIXPolicyConstraints_RemoveInhibitPolicyMapping + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_HAS_NO_INHIBIT_POLICY_MAPPING + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyConstraints_RemoveInhibitPolicyMapping +( + NSSPKIXPolicyConstraints *policyConstraints +); + +/* + * nssPKIXPolicyConstraints_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXPolicyConstraints_Equal +( + NSSPKIXPolicyConstraints *policyConstraints1, + NSSPKIXPolicyConstraints *policyConstraints2, + PRStatus *statusOpt +); + +/* + * nssPKIXPolicyConstraints_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXPolicyConstraints upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXPolicyConstraints * +nssPKIXPolicyConstraints_Duplicate +( + NSSPKIXPolicyConstraints *policyConstraints, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXPolicyConstraints_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXPolicyConstraints + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_POLICY_CONSTRAINTS + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXPolicyConstraints_verifyPointer +( + NSSPKIXPolicyConstraints *p +); +#endif /* DEBUG */ + +/* + * CRLDistPointsSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint + * + * The private calls for this type: + * + * nssPKIXCRLDistPointsSyntax_Decode + * nssPKIXCRLDistPointsSyntax_Create + * nssPKIXCRLDistPointsSyntax_Destroy + * nssPKIXCRLDistPointsSyntax_Encode + * nssPKIXCRLDistPointsSyntax_GetDistributionPointCount + * nssPKIXCRLDistPointsSyntax_GetDistributionPoints + * nssPKIXCRLDistPointsSyntax_SetDistributionPoints + * nssPKIXCRLDistPointsSyntax_GetDistributionPoint + * nssPKIXCRLDistPointsSyntax_SetDistributionPoint + * nssPKIXCRLDistPointsSyntax_InsertDistributionPoint + * nssPKIXCRLDistPointsSyntax_AppendDistributionPoint + * nssPKIXCRLDistPointsSyntax_RemoveDistributionPoint + * nssPKIXCRLDistPointsSyntax_FindDistributionPoint + * nssPKIXCRLDistPointsSyntax_Equal + * nssPKIXCRLDistPointsSyntax_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXCRLDistPointsSyntax_verifyPointer + * + */ + +/* + * nssPKIXCRLDistPointsSyntax_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCRLDistPointsSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCRLDistPointsSyntax * +nssPKIXCRLDistPointsSyntax_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXCRLDistPointsSyntax_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * A valid pointer to an NSSPKIXCRLDistPointsSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCRLDistPointsSyntax * +nssPKIXCRLDistPointsSyntax_Create +( + NSSArena *arenaOpt, + NSSPKIXDistributionPoint *distributionPoint1, + ... +); + +/* + * nssPKIXCRLDistPointsSyntax_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCRLDistPointsSyntax_Destroy +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax +); + +/* + * nssPKIXCRLDistPointsSyntax_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXCRLDistPointsSyntax_Encode +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXCRLDistPointsSyntax_GetDistributionPointCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXCRLDistPointsSyntax_GetDistributionPointCount +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax +); + +/* + * nssPKIXCRLDistPointsSyntax_GetDistributionPoints + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXDistributionPoint pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoints ** +nssPKIXCRLDistPointsSyntax_GetDistributionPoints +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSDistributionPoint *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXCRLDistPointsSyntax_SetDistributionPoints + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCRLDistPointsSyntax_SetDistributionPoints +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSDistributionPoint *distributionPoint[] + PRInt32 count +); + +/* + * nssPKIXCRLDistPointsSyntax_GetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoint * +nssPKIXCRLDistPointsSyntax_GetDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSArena *arenaOpt +); + +/* + * nssPKIXCRLDistPointsSyntax_SetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCRLDistPointsSyntax_SetDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + PRInt32 i, + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXCRLDistPointsSyntax_InsertDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCRLDistPointsSyntax_InsertDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + PRInt32 i, + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXCRLDistPointsSyntax_AppendDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCRLDistPointsSyntax_AppendDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXCRLDistPointsSyntax_RemoveDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXCRLDistPointsSyntax_RemoveDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + PRInt32 i +); + +/* + * nssPKIXCRLDistPointsSyntax_FindDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXCRLDistPointsSyntax_FindDistributionPoint +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXCRLDistPointsSyntax_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXCRLDistPointsSyntax_Equal +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax1, + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax2, + PRStatus *statusOpt +); + +/* + * nssPKIXCRLDistPointsSyntax_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXCRLDistPointsSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXCRLDistPointsSyntax * +nssPKIXCRLDistPointsSyntax_Duplicate +( + NSSPKIXCRLDistPointsSyntax *crlDistPointsSyntax, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXCRLDistPointsSyntax_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXCRLDistPointsSyntax + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_CRL_DIST_POINTS_SYNTAX + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXCRLDistPointsSyntax_verifyPointer +( + NSSPKIXCRLDistPointsSyntax *p +); +#endif /* DEBUG */ + +/* + * DistributionPoint + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistributionPoint ::= SEQUENCE { + * distributionPoint [0] DistributionPointName OPTIONAL, + * reasons [1] ReasonFlags OPTIONAL, + * cRLIssuer [2] GeneralNames OPTIONAL } + * + * The private calls for this type: + * + * nssPKIXDistributionPoint_Decode + * nssPKIXDistributionPoint_Create + * nssPKIXDistributionPoint_Destroy + * nssPKIXDistributionPoint_Encode + * nssPKIXDistributionPoint_HasDistributionPoint + * nssPKIXDistributionPoint_GetDistributionPoint + * nssPKIXDistributionPoint_SetDistributionPoint + * nssPKIXDistributionPoint_RemoveDistributionPoint + * nssPKIXDistributionPoint_HasReasons + * nssPKIXDistributionPoint_GetReasons + * nssPKIXDistributionPoint_SetReasons + * nssPKIXDistributionPoint_RemoveReasons + * nssPKIXDistributionPoint_HasCRLIssuer + * nssPKIXDistributionPoint_GetCRLIssuer + * nssPKIXDistributionPoint_SetCRLIssuer + * nssPKIXDistributionPoint_RemoveCRLIssuer + * nssPKIXDistributionPoint_Equal + * nssPKIXDistributionPoint_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXDistributionPoint_verifyPointer + * + */ + +/* + * nssPKIXDistributionPoint_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoint * +nssPKIXDistributionPoint_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXDistributionPoint_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoint * +nssPKIXDistributionPoint_Create +( + NSSArena *arenaOpt, + NSSPKIXDistributionPointName *distributionPoint, + NSSPKIXReasonFlags reasons, + NSSPKIXGeneralNames *cRLIssuer +); + +/* + * nssPKIXDistributionPoint_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPoint_Destroy +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXDistributionPoint_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXDistributionPoint_Encode +( + NSSPKIXDistributionPoint *distributionPoint, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXDistributionPoint_HasDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXDistributionPoint_HasDistributionPoint +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXDistributionPoint_GetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +nssPKIXDistributionPoint_GetDistributionPoint +( + NSSPKIXDistributionPoint *distributionPoint, + NSSArena *arenaOpt +); + +/* + * nssPKIXDistributionPoint_SetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPoint_SetDistributionPoint +( + NSSPKIXDistributionPoint *distributionPoint, + NSSPKIXDistributionPointName *name +); + +/* + * nssPKIXDistributionPoint_RemoveDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPoint_RemoveDistributionPoint +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXDistributionPoint_HasReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXDistributionPoint_HasReasons +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXDistributionPoint_GetReasons + * + * It is unlikely that the reason flags are all zero; so zero is + * returned in error situations. + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_REASONS + * + * Return value: + * A valid nonzero NSSPKIXReasonFlags value upon success + * A valid zero NSSPKIXReasonFlags if the value is indeed zero + * Zero upon error + */ + +NSS_EXTERN NSSPKIXReasonFlags +nssPKIXDistributionPoint_GetReasons +( + NSSPKIXDistributionPoint *distributionPoint, + PRStatus *statusOpt +); + +/* + * nssPKIXDistributionPoint_SetReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPoint_SetReasons +( + NSSPKIXDistributionPoint *distributionPoint, + NSSPKIXReasonFlags reasons +); + +/* + * nssPKIXDistributionPoint_RemoveReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_REASONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPoint_RemoveReasons +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXDistributionPoint_HasCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXDistributionPoint_HasCRLIssuer +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXDistributionPoint_GetCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_CRL_ISSUER + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralNames * +nssPKIXDistributionPoint_GetCRLIssuer +( + NSSPKIXDistributionPoint *distributionPoint, + NSSArena *arenaOpt +); + +/* + * nssPKIXDistributionPoint_SetCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPoint_SetCRLIssuer +( + NSSPKIXDistributionPoint *distributionPoint, + NSSPKIXGeneralNames *cRLIssuer +); + +/* + * nssPKIXDistributionPoint_RemoveCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_CRL_ISSUER + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPoint_RemoveCRLIssuer +( + NSSPKIXDistributionPoint *distributionPoint +); + +/* + * nssPKIXDistributionPoint_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXDistributionPoint_Equal +( + NSSPKIXDistributionPoint *distributionPoint1, + NSSPKIXDistributionPoint *distributionPoint2, + PRStatus *statusOpt +); + +/* + * nssPKIXDistributionPoint_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPoint * +nssPKIXDistributionPoint_Duplicate +( + NSSPKIXDistributionPoint *distributionPoint, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXDistributionPoint_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXDistributionPoint + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPoint_verifyPointer +( + NSSPKIXDistributionPoint *p +); +#endif /* DEBUG */ + +/* + * DistributionPointName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistributionPointName ::= CHOICE { + * fullName [0] GeneralNames, + * nameRelativeToCRLIssuer [1] RelativeDistinguishedName } + * + * The private calls for this type: + * + * nssPKIXDistributionPointName_Decode + * nssPKIXDistributionPointName_Create + * nssPKIXDistributionPointName_CreateFromFullName + * nssPKIXDistributionPointName_CreateFromNameRelativeToCRLIssuer + * nssPKIXDistributionPointName_Destroy + * nssPKIXDistributionPointName_Encode + * nssPKIXDistributionPointName_GetChoice + * nssPKIXDistributionPointName_GetFullName + * nssPKIXDistributionPointName_GetNameRelativeToCRLIssuer + * nssPKIXDistributionPointName_Equal + * nssPKIXDistributionPointName_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXDistributionPointName_verifyPointer + * + */ + +/* + * nssPKIXDistributionPointName_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +nssPKIXDistributionPointName_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXDistributionPointName_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME_CHOICE + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * NSS_ERROR_INVALID_PKIX_RELATIVE_DISTINGUISHED_NAME + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +nssPKIXDistributionPointName_Create +( + NSSArena *arenaOpt, + NSSPKIXDistributionPointNameChoice which, + void *name +); + +/* + * nssPKIXDistributionPointName_CreateFromFullName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_GENERAL_NAMES + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +nssPKIXDistributionPointName_CreateFromFullName +( + NSSArena *arenaOpt, + NSSPKIXGeneralNames *fullName +); + +/* + * nssPKIXDistributionPointName_CreateFromNameRelativeToCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_RELATIVE_DISTINGUISHED_NAME + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +nssPKIXDistributionPointName_CreateFromNameRelativeToCRLIssuer +( + NSSArena *arenaOpt, + NSSPKIXRelativeDistinguishedName *nameRelativeToCRLIssuer +); + +/* + * nssPKIXDistributionPointName_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPointName_Destroy +( + NSSPKIXDistributionPointName *dpn +); + +/* + * nssPKIXDistributionPointName_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXDistributionPointName_Encode +( + NSSPKIXDistributionPointName *dpn, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXDistributionPointName_GetChoice + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * + * Return value: + * A valid NSSPKIXDistributionPointNameChoice value upon success + * NSSPKIXDistributionPointNameChoice_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointNameChoice +nssPKIXDistributionPointName_GetChoice +( + NSSPKIXDistributionPointName *dpn +); + +/* + * nssPKIXDistributionPointName_GetFullName + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralNames upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralnames * +nssPKIXDistributionPointName_GetFullName +( + NSSPKIXDistributionPointName *dpn, + NSSArena *arenaOpt +); + +/* + * nssPKIXDistributionPointName_GetNameRelativeToCRLIssuer + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_WRONG_CHOICE + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +nssPKIXDistributionPointName_GetNameRelativeToCRLIssuer +( + NSSPKIXDistributionPointName *dpn, + NSSArena *arenaOpt +); + +/* + * nssPKIXDistributionPointName_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXDistributionPointName_Equal +( + NSSPKIXDistributionPointName *dpn1, + NSSPKIXDistributionPointName *dpn2, + PRStatus *statusOpt +); + +/* + * nssPKIXDistributionPointName_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +nssPKIXDistributionPointName_Duplicate +( + NSSPKIXDistributionPointName *dpn, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXDistributionPointName_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXDistributionPointName + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXDistributionPointName_verifyPointer +( + NSSPKIXDistributionPointName *p +); +#endif /* DEBUG */ + +/* + * ReasonFlags + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ReasonFlags ::= BIT STRING { + * unused (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6) } + * + * The private calls for this type: + * + * nssPKIXReasonFlags_Decode + * nssPKIXReasonFlags_Create + * nssPKIXReasonFlags_CreateFromMask + * nssPKIXReasonFlags_Destroy + * nssPKIXReasonFlags_Encode + * nssPKIXReasonFlags_GetMask + * nssPKIXReasonFlags_SetMask + * nssPKIXReasonFlags_Equal + * nssPKIXReasonFlags_Duplicate + * { bitwise accessors? } + * + * In debug builds, the following call is available: + * + * nssPKIXReasonFlags_verifyPointer + * + */ + +/* + * nssPKIXReasonFlags_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +nssPKIXReasonFlags_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXReasonFlags_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +nssPKIXReasonFlags_Create +( + NSSArena *arenaOpt, + PRBool keyCompromise, + PRBool cACompromise, + PRBool affiliationChanged, + PRBool superseded, + PRBool cessationOfOperation, + PRBool certificateHold +); + +/* + * nssPKIXReasonFlags_CreateFromMask + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS_MASK + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +nssPKIXReasonFlags_CreateFromMask +( + NSSArena *arenaOpt, + NSSPKIXReasonFlagsMask why +); + +/* + * nssPKIXReasonFlags_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXReasonFlags_Destroy +( + NSSPKIXReasonFlags *reasonFlags +); + +/* + * nssPKIXReasonFlags_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXReasonFlags_Encode +( + NSSPKIXReasonFlags *reasonFlags, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXReasonFlags_GetMask + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * A valid mask of NSSPKIXReasonFlagsMask values upon success + * NSSPKIXReasonFlagsMask_NSSinvalid upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlagsMask +nssPKIXReasonFlags_GetMask +( + NSSPKIXReasonFlags *reasonFlags +); + +/* + * nssPKIXReasonFlags_SetMask + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS_MASK + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXReasonFlags_SetMask +( + NSSPKIXReasonFlags *reasonFlags, + NSSPKIXReasonFlagsMask mask +); + +/* + * nssPKIXReasonFlags_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXReasonFlags_Equal +( + NSSPKIXReasonFlags *reasonFlags1, + NSSPKIXReasonFlags *reasonFlags2, + PRStatus *statusOpt +); + +/* + * nssPKIXReasonFlags_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +nssPKIXReasonFlags_Duplicate +( + NSSPKIXReasonFlags *reasonFlags, + NSSArena *arenaOpt +); + +/* + * { bitwise accessors? } + * + */ + +#ifdef DEBUG +/* + * nssPKIXReasonFlags_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXReasonFlags + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXReasonFlags_verifyPointer +( + NSSPKIXReasonFlags *p +); +#endif /* DEBUG */ + +/* + * ExtKeyUsageSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId + * + * The private calls for this type: + * + * nssPKIXExtKeyUsageSyntax_Decode + * nssPKIXExtKeyUsageSyntax_Create + * nssPKIXExtKeyUsageSyntax_Destroy + * nssPKIXExtKeyUsageSyntax_Encode + * nssPKIXExtKeyUsageSyntax_GetKeyPurposeIdCount + * nssPKIXExtKeyUsageSyntax_GetKeyPurposeIds + * nssPKIXExtKeyUsageSyntax_SetKeyPurposeIds + * nssPKIXExtKeyUsageSyntax_GetKeyPurposeId + * nssPKIXExtKeyUsageSyntax_SetKeyPurposeId + * nssPKIXExtKeyUsageSyntax_InsertKeyPurposeId + * nssPKIXExtKeyUsageSyntax_AppendKeyPurposeId + * nssPKIXExtKeyUsageSyntax_RemoveKeyPurposeId + * nssPKIXExtKeyUsageSyntax_FindKeyPurposeId + * nssPKIXExtKeyUsageSyntax_Equal + * nssPKIXExtKeyUsageSyntax_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXExtKeyUsageSyntax_verifyPointer + * + */ + +/* + * nssPKIXExtKeyUsageSyntax_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXExtKeyUsageSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtKeyUsageSyntax * +nssPKIXExtKeyUsageSyntax_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXExtKeyUsageSyntax_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * + * Return value: + * A valid pointer to an NSSPKIXExtKeyUsageSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtKeyUsageSyntax * +nssPKIXExtKeyUsageSyntax_Create +( + NSSArena *arenaOpt, + NSSPKIXKeyPurposeId *kpid1, + ... +); + +/* + * nssPKIXExtKeyUsageSyntax_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtKeyUsageSyntax_Destroy +( + NSSPKIXExtKeyUsageSyntax *eku +); + +/* + * nssPKIXExtKeyUsageSyntax_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXExtKeyUsageSyntax_Encode +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtKeyUsageSyntax_GetKeyPurposeIdCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXExtKeyUsageSyntax_GetKeyPurposeIdCount +( + NSSPKIXExtKeyUsageSyntax *eku +); + +/* + * nssPKIXExtKeyUsageSyntax_GetKeyPurposeIds + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXKeyPurposeId pointers upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXKeyPurposeId ** +nssPKIXExtKeyUsageSyntax_GetKeyPurposeIds +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSPKIXKeyPurposeId *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtKeyUsageSyntax_SetKeyPurposeIds + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtKeyUsageSyntax_SetKeyPurposeIds +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSPKIXKeyPurposeId *ids[], + PRInt32 count +); + +/* + * nssPKIXExtKeyUsageSyntax_GetKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXKeyPurposeId upon success + * NULL upon error + */ + +NSS_EXTERN NSSPKIXKeyPurposeId * +nssPKIXExtKeyUsageSyntax_GetKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXExtKeyUsageSyntax_SetKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtKeyUsageSyntax_SetKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + PRInt32 i, + NSSPKIXKeyPurposeId *id +); + +/* + * nssPKIXExtKeyUsageSyntax_InsertKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtKeyUsageSyntax_InsertKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + PRInt32 i, + NSSPKIXKeyPurposeId *id +); + +/* + * nssPKIXExtKeyUsageSyntax_AppendKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtKeyUsageSyntax_AppendKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSPKIXKeyPurposeId *id +); + +/* + * nssPKIXExtKeyUsageSyntax_RemoveKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXExtKeyUsageSyntax_RemoveKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + PRInt32 i +); + +/* + * nssPKIXExtKeyUsageSyntax_FindKeyPurposeId + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_PKIX_KEY_PURPOSE_ID + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified key purpose id upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXExtKeyUsageSyntax_FindKeyPurposeId +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSPKIXKeyPurposeId *id +); + +/* + * nssPKIXExtKeyUsageSyntax_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXExtKeyUsageSyntax_Equal +( + NSSPKIXExtKeyUsageSyntax *eku1, + NSSPKIXExtKeyUsageSyntax *eku2, + PRStatus *statusOpt +); + +/* + * nssPKIXExtKeyUsageSyntax_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXExtKeyUsageSyntax upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXExtKeyUsageSyntax * +nssPKIXExtKeyUsageSyntax_Duplicate +( + NSSPKIXExtKeyUsageSyntax *eku, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXExtKeyUsageSyntax_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXExtKeyUsageSyntax + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_EXT_KEY_USAGE_SYNTAX + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXExtKeyUsageSyntax_verifyPointer +( + NSSPKIXExtKeyUsageSyntax *p +); +#endif /* DEBUG */ + +/* + * AuthorityInfoAccessSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AuthorityInfoAccessSyntax ::= + * SEQUENCE SIZE (1..MAX) OF AccessDescription + * + * The private calls for this type: + * + * nssPKIXAuthorityInfoAccessSyntax_Decode + * nssPKIXAuthorityInfoAccessSyntax_Create + * nssPKIXAuthorityInfoAccessSyntax_Destroy + * nssPKIXAuthorityInfoAccessSyntax_Encode + * nssPKIXAuthorityInfoAccessSyntax_GetAccessDescriptionCount + * nssPKIXAuthorityInfoAccessSyntax_GetAccessDescriptions + * nssPKIXAuthorityInfoAccessSyntax_SetAccessDescriptions + * nssPKIXAuthorityInfoAccessSyntax_GetAccessDescription + * nssPKIXAuthorityInfoAccessSyntax_SetAccessDescription + * nssPKIXAuthorityInfoAccessSyntax_InsertAccessDescription + * nssPKIXAuthorityInfoAccessSyntax_AppendAccessDescription + * nssPKIXAuthorityInfoAccessSyntax_RemoveAccessDescription + * nssPKIXAuthorityInfoAccessSyntax_FindAccessDescription + * nssPKIXAuthorityInfoAccessSyntax_Equal + * nssPKIXAuthorityInfoAccessSyntax_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXAuthorityInfoAccessSyntax_verifyPointer + * + */ + +/* + * nssPKIXAuthorityInfoAccessSyntax_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityInfoAccessSyntax upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityInfoAccessSyntax * +nssPKIXAuthorityInfoAccessSyntax_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityInfoAccessSyntax upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityInfoAccessSyntax * +nssPKIXAuthorityInfoAccessSyntax_Create +( + NSSArena *arenaOpt, + NSSPKIXAccessDescription *ad1, + ... +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityInfoAccessSyntax_Destroy +( + NSSPKIXAuthorityInfoAccessSyntax *aias +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXAuthorityInfoAccessSyntax_Encode +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_GetAccessDescriptionCount + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * Nonnegative integer upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXAuthorityInfoAccessSyntax_GetAccessDescriptionCount +( + NSSPKIXAuthorityInfoAccessSyntax *aias +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_GetAccessDescriptions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_ARRAY_TOO_SMALL + * + * Return value: + * A valid pointer to an array of NSSPKIXAccessDescription pointers + * upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription ** +nssPKIXAuthorityInfoAccessSyntax_GetAccessDescriptions +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSPKIXAccessDescription *rvOpt[], + PRInt32 limit, + NSSArena *arenaOpt +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_SetAccessDescriptions + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityInfoAccessSyntax_SetAccessDescriptions +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSPKIXAccessDescription *ad[], + PRInt32 count +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_GetAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAccessDescription upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription * +nssPKIXAuthorityInfoAccessSyntax_GetAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + PRInt32 i, + NSSArena *arenaOpt +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_SetAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityInfoAccessSyntax_SetAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + PRInt32 i, + NSSPKIXAccessDescription *ad +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_InsertAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityInfoAccessSyntax_InsertAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + PRInt32 i, + NSSPKIXAccessDescription *ad +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_AppendAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityInfoAccessSyntax_AppendAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSPKIXAccessDescription *ad +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_RemoveAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityInfoAccessSyntax_RemoveAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + PRInt32 i +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_FindAccessDescription + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_NOT_FOUND + * NSS_ERROR_VALUE_OUT_OF_RANGE + * + * Return value: + * The index of the specified policy mapping upon success + * -1 upon failure. + */ + +NSS_EXTERN PRInt32 +nssPKIXAuthorityInfoAccessSyntax_FindAccessDescription +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSPKIXAccessDescription *ad +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXAuthorityInfoAccessSyntax_Equal +( + NSSPKIXAuthorityInfoAccessSyntax *aias1, + NSSPKIXAuthorityInfoAccessSyntax *aias2, + PRStatus *statusOpt +); + +/* + * nssPKIXAuthorityInfoAccessSyntax_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXAuthorityInfoAccessSyntax upon + * success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAuthorityInfoAccessSyntax * +nssPKIXAuthorityInfoAccessSyntax_Duplicate +( + NSSPKIXAuthorityInfoAccessSyntax *aias, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXAuthorityInfoAccessSyntax_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXAuthorityInfoAccessSyntax + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_AUTHORITY_INFO_ACCESS_SYNTAX + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXAuthorityInfoAccessSyntax_verifyPointer +( + NSSPKIXAuthorityInfoAccessSyntax *p +); +#endif /* DEBUG */ + +/* + * AccessDescription + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AccessDescription ::= SEQUENCE { + * accessMethod OBJECT IDENTIFIER, + * accessLocation GeneralName } + * + * The private calls for this type: + * + * nssPKIXAccessDescription_Decode + * nssPKIXAccessDescription_Create + * nssPKIXAccessDescription_Destroy + * nssPKIXAccessDescription_Encode + * nssPKIXAccessDescription_GetAccessMethod + * nssPKIXAccessDescription_SetAccessMethod + * nssPKIXAccessDescription_GetAccessLocation + * nssPKIXAccessDescription_SetAccessLocation + * nssPKIXAccessDescription_Equal + * nssPKIXAccessDescription_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXAccessDescription_verifyPointer + * + */ + +/* + * nssPKIXAccessDescription_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAccessDescription upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription * +nssPKIXAccessDescription_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXAccessDescription_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * + * Return value: + * A valid pointer to an NSSPKIXAccessDescription upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription * +nssPKIXAccessDescription_Create +( + NSSArena *arenaOpt, + NSSOID *accessMethod, + NSSPKIXGeneralName *accessLocation +); + +/* + * nssPKIXAccessDescription_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAccessDescription_Destroy +( + NSSPKIXAccessDescription *ad +); + +/* + * nssPKIXAccessDescription_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXAccessDescription_Encode +( + NSSPKIXAccessDescription *ad, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXAccessDescription_GetAccessMethod + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSOID pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSOID * +nssPKIXAccessDescription_GetAccessMethod +( + NSSPKIXAccessDescription *ad +); + +/* + * nssPKIXAccessDescription_SetAccessMethod + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_INVALID_OID + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAccessDescription_SetAccessMethod +( + NSSPKIXAccessDescription *ad, + NSSOID *accessMethod +); + +/* + * nssPKIXAccessDescription_GetAccessLocation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXGeneralName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXGeneralName * +nssPKIXAccessDescription_GetAccessLocation +( + NSSPKIXAccessDescription *ad, + NSSArena *arenaOpt +); + +/* + * nssPKIXAccessDescription_SetAccessLocation + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_INVALID_PKIX_GENERAL_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXAccessDescription_SetAccessLocation +( + NSSPKIXAccessDescription *ad, + NSSPKIXGeneralName *accessLocation +); + +/* + * nssPKIXAccessDescription_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXAccessDescription_Equal +( + NSSPKIXAccessDescription *ad1, + NSSPKIXAccessDescription *ad2, + PRStatus *statusOpt +); + +/* + * nssPKIXAccessDescription_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXAccessDescription upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXAccessDescription * +nssPKIXAccessDescription_Duplicate +( + NSSPKIXAccessDescription *ad, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXAccessDescription_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXAccessDescription + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ACCESS_DESCRIPTION + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXAccessDescription_verifyPointer +( + NSSPKIXAccessDescription *p +); +#endif /* DEBUG */ + +/* + * IssuingDistributionPoint + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * IssuingDistributionPoint ::= SEQUENCE { + * distributionPoint [0] DistributionPointName OPTIONAL, + * onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE, + * onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE, + * onlySomeReasons [3] ReasonFlags OPTIONAL, + * indirectCRL [4] BOOLEAN DEFAULT FALSE } + * + * The private calls for this type: + * + * nssPKIXIssuingDistributionPoint_Decode + * nssPKIXIssuingDistributionPoint_Create + * nssPKIXIssuingDistributionPoint_Destroy + * nssPKIXIssuingDistributionPoint_Encode + * nssPKIXIssuingDistributionPoint_HasDistributionPoint + * nssPKIXIssuingDistributionPoint_GetDistributionPoint + * nssPKIXIssuingDistributionPoint_SetDistributionPoint + * nssPKIXIssuingDistributionPoint_RemoveDistributionPoint + * nssPKIXIssuingDistributionPoint_GetOnlyContainsUserCerts + * nssPKIXIssuingDistributionPoint_SetOnlyContainsUserCerts + * nssPKIXIssuingDistributionPoint_GetOnlyContainsCACerts + * nssPKIXIssuingDistributionPoint_SetOnlyContainsCACerts + * nssPKIXIssuingDistributionPoint_HasOnlySomeReasons + * nssPKIXIssuingDistributionPoint_GetOnlySomeReasons + * nssPKIXIssuingDistributionPoint_SetOnlySomeReasons + * nssPKIXIssuingDistributionPoint_RemoveOnlySomeReasons + * nssPKIXIssuingDistributionPoint_GetIndirectCRL + * nssPKIXIssuingDistributionPoint_SetIndirectCRL + * nssPKIXIssuingDistributionPoint_Equal + * nssPKIXIssuingDistributionPoint_Duplicate + * + * In debug builds, the following call is available: + * + * nssPKIXIssuingDistributionPoint_verifyPointer + * + */ + +/* + * nssPKIXIssuingDistributionPoint_Decode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_BER + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXIssuingDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXIssuingDistributionPoint * +nssPKIXIssuingDistributionPoint_Decode +( + NSSArena *arenaOpt, + NSSBER *ber +); + +/* + * nssPKIXIssuingDistributionPoint_Create + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * + * Return value: + * A valid pointer to an NSSPKIXIssuingDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXIssuingDistributionPoint * +nssPKIXIssuingDistributionPoint_Create +( + NSSArena *arenaOpt, + NSSPKIXDistributionPointName *distributionPointOpt, + PRBool onlyContainsUserCerts, + PRBool onlyContainsCACerts, + NSSPKIXReasonFlags *onlySomeReasons + PRBool indirectCRL +); + +/* + * nssPKIXIssuingDistributionPoint_Destroy + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_Destroy +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * nssPKIXIssuingDistributionPoint_Encode + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid NSSBER pointer upon success + * NULL upon failure + */ + +NSS_EXTERN NSSBER * +nssPKIXIssuingDistributionPoint_Encode +( + NSSPKIXIssuingDistributionPoint *idp, + NSSASN1EncodingType encoding, + NSSBER *rvOpt, + NSSArena *arenaOpt +); + +/* + * nssPKIXIssuingDistributionPoint_HasDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXIssuingDistributionPoint_HasDistributionPoint +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * nssPKIXIssuingDistributionPoint_GetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXDistributionPointName upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXDistributionPointName * +nssPKIXIssuingDistributionPoint_GetDistributionPoint +( + NSSPKIXIssuingDistributionPoint *idp, + NSSArena *arenaOpt +); + +/* + * nssPKIXIssuingDistributionPoint_SetDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_DISTRIBUTION_POINT_NAME + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_SetDistributionPoint +( + NSSPKIXIssuingDistributionPoint *idp, + NSSPKIXDistributionPointName *dpn +); + +/* + * nssPKIXIssuingDistributionPoint_RemoveDistributionPoint + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_RemoveDistributionPoint +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * nssPKIXIssuingDistributionPoint_GetOnlyContainsUserCerts + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the onlyContainsUserCerts value is true + * PR_FALSE if it isn't + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXIssuingDistributionPoint_GetOnlyContainsUserCerts +( + NSSPKIXIssuingDistributionPoint *idp, + PRStatus *statusOpt +); + +/* + * nssPKIXIssuingDistributionPoint_SetOnlyContainsUserCerts + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_SetOnlyContainsUserCerts +( + NSSPKIXIssuingDistributionPoint *idp, + PRBool onlyContainsUserCerts +); + +/* + * nssPKIXIssuingDistributionPoint_GetOnlyContainsCACerts + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the onlyContainsCACerts value is true + * PR_FALSE if it isn't + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXIssuingDistributionPoint_GetOnlyContainsCACerts +( + NSSPKIXIssuingDistributionPoint *idp, + PRStatus *statusOpt +); + +/* + * nssPKIXIssuingDistributionPoint_SetOnlyContainsCACerts + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_SetOnlyContainsCACerts +( + NSSPKIXIssuingDistributionPoint *idp, + PRBool onlyContainsCACerts +); + +/* + * nssPKIXIssuingDistributionPoint_HasOnlySomeReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if it has one + * PR_FALSE if it doesn't + * PR_FALSE upon failure + */ + +NSS_EXTERN PRBool +nssPKIXIssuingDistributionPoint_HasOnlySomeReasons +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * nssPKIXIssuingDistributionPoint_GetOnlySomeReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_ONLY_SOME_REASONS + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_NO_MEMORY + * + * Return value: + * A valid pointer to an NSSPKIXReasonFlags upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXReasonFlags * +nssPKIXIssuingDistributionPoint_GetOnlySomeReasons +( + NSSPKIXIssuingDistributionPoint *idp, + NSSArena *arenaOpt +); + +/* + * nssPKIXIssuingDistributionPoint_SetOnlySomeReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_INVALID_PKIX_REASON_FLAGS + * NSS_ERROR_NO_MEMORY + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_SetOnlySomeReasons +( + NSSPKIXIssuingDistributionPoint *idp, + NSSPKIXReasonFlags *onlySomeReasons +); + +/* + * nssPKIXIssuingDistributionPoint_RemoveOnlySomeReasons + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_HAS_NO_ONLY_SOME_REASONS + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_RemoveOnlySomeReasons +( + NSSPKIXIssuingDistributionPoint *idp +); + +/* + * nssPKIXIssuingDistributionPoint_GetIndirectCRL + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the indirectCRL value is true + * PR_FALSE if it isn't + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXIssuingDistributionPoint_GetIndirectCRL +( + NSSPKIXIssuingDistributionPoint *idp, + PRStatus *statusOpt +); + +/* + * nssPKIXIssuingDistributionPoint_SetIndirectCRL + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_SetIndirectCRL +( + NSSPKIXIssuingDistributionPoint *idp, + PRBool indirectCRL +); + +/* + * nssPKIXIssuingDistributionPoint_Equal + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_TRUE if the two objects have equal values + * PR_FALSE otherwise + * PR_FALSE upon error + */ + +NSS_EXTERN PRBool +nssPKIXIssuingDistributionPoint_Equal +( + NSSPKIXIssuingDistributionPoint *idp1, + NSSPKIXIssuingDistributionPoint *idp2, + PRStatus *statusOpt +); + +/* + * nssPKIXIssuingDistributionPoint_Duplicate + * + * -- fgmr comments -- + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * + * Return value: + * A valid pointer to an NSSPKIXIssuingDistributionPoint upon success + * NULL upon failure + */ + +NSS_EXTERN NSSPKIXIssuingDistributionPoint * +nssPKIXIssuingDistributionPoint_Duplicate +( + NSSPKIXIssuingDistributionPoint *idp, + NSSArena *arenaOpt +); + +#ifdef DEBUG +/* + * nssPKIXIssuingDistributionPoint_verifyPointer + * + * This method is only present in debug builds. + * + * If the specified pointer is a valid pointer to an NSSPKIXIssuingDistributionPoint + * object, this routine will return PR_SUCCESS. Otherwise, it will + * put an error on the error stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INVALID_PKIX_ISSUING_DISTRIBUTION_POINT + * + * Return value: + * PR_SUCCESS if the pointer is valid + * PR_FAILURE if it isn't + */ + +NSS_EXTERN PRStatus +nssPKIXIssuingDistributionPoint_verifyPointer +( + NSSPKIXIssuingDistributionPoint *p +); +#endif /* DEBUG */ + +PR_END_EXTERN_C + +#endif /* NSSPKIX_H */ diff --git a/security/nss/lib/pkix/include/pkixm.h b/security/nss/lib/pkix/include/pkixm.h new file mode 100644 index 000000000..c273848b5 --- /dev/null +++ b/security/nss/lib/pkix/include/pkixm.h @@ -0,0 +1,969 @@ +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is the Netscape security libraries. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1994-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the + * terms of the GNU General Public License Version 2 or later (the + * "GPL"), in which case the provisions of the GPL are applicable + * instead of those above. If you wish to allow use of your + * version of this file only under the terms of the GPL and not to + * allow others to use your version of this file under the MPL, + * indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by + * the GPL. If you do not delete the provisions above, a recipient + * may use your version of this file under either the MPL or the + * GPL. + */ + +#ifndef PKIXM_H +#define PKIXM_H + +#ifdef DEBUG +static const char PKIXM_CVS_ID[] = "@(#) $Source$ $Revision$ $Date$ $Name$"; +#endif /* DEBUG */ + +/* + * pkixm.h + * + * This file contains the private type definitions for the + * PKIX part-1 objects. Mostly, this file contains the actual + * structure definitions for the NSSPKIX types declared in nsspkixt.h. + */ + +#ifndef PKIXTM_H +#include "pkixtm.h" +#endif /* PKIXTM_H */ + +#ifndef PKIX_H +#include "pkix.h" +#endif /* PKIX_H */ + +PR_BEGIN_EXTERN_C + +/* + * nss_pkix_Attribute_v_create + * + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXAttribute upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXAttribute * +nss_pkix_Attribute_v_create +( + NSSArena *arenaOpt, + NSSPKIXAttributeType *typeOid, + PRUint32 count, + va_list ap +); + +#ifdef DEBUG + +/* + * nss_pkix_Attribute_add_pointer + * + * This method is only present in debug builds. + * + * This module-private routine adds an NSSPKIXAttribute pointer to + * the internal pointer-tracker. This routine should only be used + * by the NSSPKIX module. This routine returns a PRStatus value; + * upon error it will place an error on the error stack and return + * PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INTERNAL_ERROR + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nss_pkix_Attribute_add_pointer +( + const NSSPKIXAttribute *p +); + +/* + * nss_pkix_Attribute_remove_pointer + * + * This method is only present in debug builds. + * + * This module-private routine removes a valid NSSPKIXAttribute + * pointer from the internal pointer-tracker. This routine should + * only be used by the NSSPKIX module. This routine returns a + * PRStatus value; upon error it will place an error on the error + * stack and return PR_FAILURE. + * + * The error may be one of the following values: + * NSS_ERROR_INTERNAL_ERROR + * + * Return value: + * PR_SUCCESS upon success + * PR_FAILURE upon failure + */ + +NSS_EXTERN PRStatus +nss_pkix_Attribute_remove_pointer +( + const NSSPKIXAttribute *p +); + +#endif /* DEBUG */ + + +#ifdef DEBUG + +NSS_EXTERN PRStatus +nss_pkix_AttributeTypeAndValue_add_pointer +( + const NSSPKIXAttributeTypeAndValue *p +); + +NSS_EXTERN PRStatus +nss_pkix_AttributeTypeAndValue_remove_pointer +( + const NSSPKIXAttributeTypeAndValue *p +); + +#endif /* DEBUG */ + +/* + * nss_pkix_X520Name_DoUTF8 + * + */ + +NSS_EXTERN PR_STATUS +nss_pkix_X520Name_DoUTF8 +( + NSSPKIXX520Name *name +); + +#ifdef DEBUG + +NSS_EXTERN PRStatus +nss_pkix_X520Name_add_pointer +( + const NSSPKIXX520Name *p +); + +NSS_EXTERN PRStatus +nss_pkix_X520Name_remove_pointer +( + const NSSPKIXX520Name *p +); + +#endif /* DEBUG */ + +/* + * nss_pkix_X520CommonName_DoUTF8 + * + */ + +NSS_EXTERN PR_STATUS +nss_pkix_X520CommonName_DoUTF8 +( + NSSPKIXX520CommonName *name +); + +#ifdef DEBUG + +NSS_EXTERN PRStatus +nss_pkix_X520CommonName_add_pointer +( + const NSSPKIXX520CommonName *p +); + +NSS_EXTERN PRStatus +nss_pkix_X520CommonName_remove_pointer +( + const NSSPKIXX520CommonName *p +); + + +NSS_EXTERN PRStatus +nss_pkix_Name_add_pointer +( + const NSSPKIXName *p +); + +NSS_EXTERN PRStatus +nss_pkix_Name_remove_pointer +( + const NSSPKIXName *p +); + +/* + * nss_pkix_RDNSequence_v_create + */ + +NSS_EXTERN NSSPKIXRDNSequence * +nss_pkix_RDNSequence_v_create +( + NSSArena *arenaOpt, + PRUint32 count, + va_list ap +); + +/* + * nss_pkix_RDNSequence_Clear + * + * Wipes out cached data. + */ + +NSS_EXTERN PRStatus +nss_pkix_RDNSequence_Clear +( + NSSPKIXRDNSequence *rdnseq +); + +#ifdef DEBUG + +#ifdef NSSDEBUG + +NSS_EXTERN PRStatus +nss_pkix_RDNSequence_register +( + NSSPKIXRDNSequence *rdnseq +); + +NSS_EXTERN PRStatus +nss_pkix_RDNSequence_deregister +( + NSSPKIXRDNSequence *rdnseq +); + +#endif /* NSSDEBUG */ + +NSS_EXTERN PRStatus +nss_pkix_RDNSequence_add_pointer +( + const NSSPKIXRDNSequence *p +); + +NSS_EXTERN PRStatus +nss_pkix_RDNSequence_remove_pointer +( + const NSSPKIXRDNSequence *p +); + +#endif /* DEBUG */ + +/* + * nss_pkix_RelativeDistinguishedName_v_create + * + * + * The error may be one of the following values: + * NSS_ERROR_NO_MEMORY + * NSS_ERROR_INVALID_ARENA + * NSS_ERROR_INVALID_OID + * NSS_ERROR_INVALID_ITEM + * + * Return value: + * A valid pointer to an NSSPKIXRelativeDistinguishedName upon success + * NULL upon failure. + */ + +NSS_EXTERN NSSPKIXRelativeDistinguishedName * +nss_pkix_RelativeDistinguishedName_V_Create +( + NSSArena *arenaOpt, + PRUint32 count, + va_list ap +); + +/* + * nss_pkix_RelativeDistinguishedName_Clear + * + * Wipes out cached data. + */ + +NSS_EXTERN PRStatus +nss_pkix_RelativeDistinguishedName_Clear +( + NSSPKIXRelativeDistinguishedName *rdn +); + +#ifdef DEBUG + +#ifdef NSSDEBUG + +NSS_EXTERN PRStatus +nss_pkix_RelativeDistinguishedName_register +( + NSSPKIXRelativeDistinguishedName *rdn +); + +NSS_EXTERN PRStatus +nss_pkix_RelativeDistinguishedName_deregister +( + NSSPKIXRelativeDistinguishedName *rdn +); + +#endif /* NSSDEBUG */ + +NSS_EXTERN PRStatus +nss_pkix_RelativeDistinguishedName_add_pointer +( + const NSSPKIXRelativeDistinguishedName *p +); + +NSS_EXTERN PRStatus +nss_pkix_RelativeDistinguishedName_remove_pointer +( + const NSSPKIXRelativeDistinguishedName *p +); + +NSS_EXTERN PRStatus +nss_pkix_Certificate_add_pointer +( + const NSSPKIXCertificate *p +); + +NSS_EXTERN PRStatus +nss_pkix_Certificate_remove_pointer +( + const NSSPKIXCertificate *p +); + +NSS_EXTERN PRStatus +nss_pkix_TBSCertificate_add_pointer +( + const NSSPKIXTBSCertificate *p +); + +NSS_EXTERN PRStatus +nss_pkix_TBSCertificate_remove_pointer +( + const NSSPKIXTBSCertificate *p +); + +NSS_EXTERN PRStatus +nss_pkix_Validity_add_pointer +( + const NSSPKIXValidity *p +); + +NSS_EXTERN PRStatus +nss_pkix_Validity_remove_pointer +( + const NSSPKIXValidity *p +); + +NSS_EXTERN PRStatus +nss_pkix_SubjectPublicKeyInfo_add_pointer +( + const NSSPKIXSubjectPublicKeyInfo *p +); + +NSS_EXTERN PRStatus +nss_pkix_SubjectPublicKeyInfo_remove_pointer +( + const NSSPKIXSubjectPublicKeyInfo *p +); + +NSS_EXTERN PRStatus +nss_pkix_CertificateList_add_pointer +( + const NSSPKIXCertificateList *p +); + +NSS_EXTERN PRStatus +nss_pkix_CertificateList_remove_pointer +( + const NSSPKIXCertificateList *p +); + +NSS_EXTERN PRStatus +nss_pkix_TBSCertList_add_pointer +( + const NSSPKIXTBSCertList *p +); + +NSS_EXTERN PRStatus +nss_pkix_TBSCertList_remove_pointer +( + const NSSPKIXTBSCertList *p +); + +NSS_EXTERN PRStatus +nss_pkix_revokedCertificates_add_pointer +( + const NSSPKIXrevokedCertificates *p +); + +NSS_EXTERN PRStatus +nss_pkix_revokedCertificates_remove_pointer +( + const NSSPKIXrevokedCertificates *p +); + +NSS_EXTERN PRStatus +nss_pkix_revokedCertificate_add_pointer +( + const NSSPKIXrevokedCertificate *p +); + +NSS_EXTERN PRStatus +nss_pkix_revokedCertificate_remove_pointer +( + const NSSPKIXrevokedCertificate *p +); + +NSS_EXTERN PRStatus +nss_pkix_AlgorithmIdentifier_add_pointer +( + const NSSPKIXAlgorithmIdentifier *p +); + +NSS_EXTERN PRStatus +nss_pkix_AlgorithmIdentifier_remove_pointer +( + const NSSPKIXAlgorithmIdentifier *p +); + +NSS_EXTERN PRStatus +nss_pkix_ORAddress_add_pointer +( + const NSSPKIXORAddress *p +); + +NSS_EXTERN PRStatus +nss_pkix_ORAddress_remove_pointer +( + const NSSPKIXORAddress *p +); + +NSS_EXTERN PRStatus +nss_pkix_BuiltInStandardAttributes_add_pointer +( + const NSSPKIXBuiltInStandardAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_BuiltInStandardAttributes_remove_pointer +( + const NSSPKIXBuiltInStandardAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_PersonalName_add_pointer +( + const NSSPKIXPersonalName *p +); + +NSS_EXTERN PRStatus +nss_pkix_PersonalName_remove_pointer +( + const NSSPKIXPersonalName *p +); + +NSS_EXTERN PRStatus +nss_pkix_OrganizationalUnitNames_add_pointer +( + const NSSPKIXOrganizationalUnitNames *p +); + +NSS_EXTERN PRStatus +nss_pkix_OrganizationalUnitNames_remove_pointer +( + const NSSPKIXOrganizationalUnitNames *p +); + +NSS_EXTERN PRStatus +nss_pkix_BuiltInDomainDefinedAttributes_add_pointer +( + const NSSPKIXBuiltInDomainDefinedAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_BuiltInDomainDefinedAttributes_remove_pointer +( + const NSSPKIXBuiltInDomainDefinedAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_BuiltInDomainDefinedAttribute_add_pointer +( + const NSSPKIXBuiltInDomainDefinedAttribute *p +); + +NSS_EXTERN PRStatus +nss_pkix_BuiltInDomainDefinedAttribute_remove_pointer +( + const NSSPKIXBuiltInDomainDefinedAttribute *p +); + +NSS_EXTERN PRStatus +nss_pkix_ExtensionAttributes_add_pointer +( + const NSSPKIXExtensionAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_ExtensionAttributes_remove_pointer +( + const NSSPKIXExtensionAttribute *p +); + +NSS_EXTERN PRStatus +nss_pkix_ExtensionAttribute_add_pointer +( + const NSSPKIXExtensionAttribute *p +); + +NSS_EXTERN PRStatus +nss_pkix_ExtensionAttribute_remove_pointer +( + const NSSPKIXExtensionAttribute *p +); + +NSS_EXTERN PRStatus +nss_pkix_TeletexPersonalName_add_pointer +( + const NSSPKIXTeletexPersonalName *p +); + +NSS_EXTERN PRStatus +nss_pkix_TeletexPersonalName_remove_pointer +( + const NSSPKIXTeletexPersonalName *p +); + +NSS_EXTERN PRStatus +nss_pkix_TeletexOrganizationalUnitNames_add_pointer +( + const NSSPKIXTeletexOrganizationalUnitNames *p +); + +NSS_EXTERN PRStatus +nss_pkix_TeletexOrganizationalUnitNames_remove_pointer +( + const NSSPKIXTeletexOrganizationalUnitNames *p +); + +NSS_EXTERN PRStatus +nss_pkix_PDSParameter_add_pointer +( + const NSSPKIXPDSParameter *p +); + +NSS_EXTERN PRStatus +nss_pkix_PDSParameter_remove_pointer +( + const NSSPKIXPDSParameter *p +); + +NSS_EXTERN PRStatus +nss_pkix_ExtendedNetworkAddress_add_pointer +( + const NSSPKIXExtendedNetworkAddress *p +); + +NSS_EXTERN PRStatus +nss_pkix_ExtendedNetworkAddress_remove_pointer +( + const NSSPKIXExtendedNetworkAddress *p +); + +NSS_EXTERN PRStatus +nss_pkix_e1634Address_add_pointer +( + const NSSPKIXe1634Address *p +); + +NSS_EXTERN PRStatus +nss_pkix_e1634Address_remove_pointer +( + const NSSPKIXe1634Address *p +); + +NSS_EXTERN PRStatus +nss_pkix_TeletexDomainDefinedAttributes_add_pointer +( + const NSSPKIXTeletexDomainDefinedAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_TeletexDomainDefinedAttributes_remove_pointer +( + const NSSPKIXTeletexDomainDefinedAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_TeletexDomainDefinedAttribute_add_pointer +( + const NSSPKIXTeletexDomainDefinedAttribute *p +); + +NSS_EXTERN PRStatus +nss_pkix_TeletexDomainDefinedAttribute_remove_pointer +( + const NSSPKIXTeletexDomainDefinedAttribute *p +); + +NSS_EXTERN PRStatus +nss_pkix_AuthorityKeyIdentifier_add_pointer +( + const NSSPKIXAuthorityKeyIdentifier *p +); + +NSS_EXTERN PRStatus +nss_pkix_AuthorityKeyIdentifier_remove_pointer +( + const NSSPKIXAuthorityKeyIdentifier *p +); + +NSS_EXTERN PRStatus +nss_pkix_KeyUsage_add_pointer +( + const NSSPKIXKeyUsage *p +); + +NSS_EXTERN PRStatus +nss_pkix_KeyUsage_remove_pointer +( + const NSSPKIXKeyUsage *p +); + +NSS_EXTERN PRStatus +nss_pkix_PrivateKeyUsagePeriod_add_pointer +( + const NSSPKIXPrivateKeyUsagePeriod *p +); + +NSS_EXTERN PRStatus +nss_pkix_PrivateKeyUsagePeriod_remove_pointer +( + const NSSPKIXPrivateKeyUsagePeriod *p +); + +NSS_EXTERN PRStatus +nss_pkix_CertificatePolicies_add_pointer +( + const NSSPKIXCertificatePolicies *p +); + +NSS_EXTERN PRStatus +nss_pkix_CertificatePolicies_remove_pointer +( + const NSSPKIXCertificatePolicies *p +); + +NSS_EXTERN PRStatus +nss_pkix_PolicyInformation_add_pointer +( + const NSSPKIXPolicyInformation *p +); + +NSS_EXTERN PRStatus +nss_pkix_PolicyInformation_remove_pointer +( + const NSSPKIXPolicyInformation *p +); + +NSS_EXTERN PRStatus +nss_pkix_PolicyQualifierInfo_add_pointer +( + const NSSPKIXPolicyQualifierInfo *p +); + +NSS_EXTERN PRStatus +nss_pkix_PolicyQualifierInfo_remove_pointer +( + const NSSPKIXPolicyQualifierInfo *p +); + +NSS_EXTERN PRStatus +nss_pkix_UserNotice_add_pointer +( + const NSSPKIXUserNotice *p +); + +NSS_EXTERN PRStatus +nss_pkix_UserNotice_remove_pointer +( + const NSSPKIXUserNotice *p +); + +NSS_EXTERN PRStatus +nss_pkix_NoticeReference_add_pointer +( + const NSSPKIXNoticeReference *p +); + +NSS_EXTERN PRStatus +nss_pkix_NoticeReference_remove_pointer +( + const NSSPKIXNoticeReference *p +); + +NSS_EXTERN PRStatus +nss_pkix_PolicyMappings_add_pointer +( + const NSSPKIXPolicyMappings *p +); + +NSS_EXTERN PRStatus +nss_pkix_PolicyMappings_remove_pointer +( + const NSSPKIXPolicyMappings *p +); + +NSS_EXTERN PRStatus +nss_pkix_policyMapping_add_pointer +( + const NSSPKIXpolicyMapping *p +); + +NSS_EXTERN PRStatus +nss_pkix_policyMapping_remove_pointer +( + const NSSPKIXpolicyMapping *p +); + +NSS_EXTERN PRStatus +nss_pkix_GeneralName_add_pointer +( + const NSSPKIXGeneralName *p +); + +NSS_EXTERN PRStatus +nss_pkix_GeneralName_remove_pointer +( + const NSSPKIXGeneralName *p +); + +NSS_EXTERN PRStatus +nss_pkix_GeneralNames_add_pointer +( + const NSSPKIXGeneralNames *p +); + +NSS_EXTERN PRStatus +nss_pkix_GeneralNames_remove_pointer +( + const NSSPKIXGeneralNames *p +); + +NSS_EXTERN PRStatus +nss_pkix_AnotherName_add_pointer +( + const NSSPKIXAnotherName *p +); + +NSS_EXTERN PRStatus +nss_pkix_AnotherName_remove_pointer +( + const NSSPKIXAnotherName *p +); + +NSS_EXTERN PRStatus +nss_pkix_EDIPartyName_add_pointer +( + const NSSPKIXEDIPartyName *p +); + +NSS_EXTERN PRStatus +nss_pkix_EDIPartyName_remove_pointer +( + const NSSPKIXEDIPartyName *p +); + +NSS_EXTERN PRStatus +nss_pkix_SubjectDirectoryAttributes_add_pointer +( + const NSSPKIXSubjectDirectoryAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_SubjectDirectoryAttributes_remove_pointer +( + const NSSPKIXSubjectDirectoryAttributes *p +); + +NSS_EXTERN PRStatus +nss_pkix_BasicConstraints_add_pointer +( + const NSSPKIXBasicConstraints *p +); + +NSS_EXTERN PRStatus +nss_pkix_BasicConstraints_remove_pointer +( + const NSSPKIXBasicConstraints *p +); + +NSS_EXTERN PRStatus +nss_pkix_NameConstraints_add_pointer +( + const NSSPKIXNameConstraints *p +); + +NSS_EXTERN PRStatus +nss_pkix_NameConstraints_remove_pointer +( + const NSSPKIXNameConstraints *p +); + +NSS_EXTERN PRStatus +nss_pkix_GeneralSubtrees_add_pointer +( + const NSSPKIXGeneralSubtrees *p +); + +NSS_EXTERN PRStatus +nss_pkix_GeneralSubtrees_remove_pointer +( + const NSSPKIXGeneralSubtrees *p +); + +NSS_EXTERN PRStatus +nss_pkix_GeneralSubtree_add_pointer +( + const NSSPKIXGeneralSubtree *p +); + +NSS_EXTERN PRStatus +nss_pkix_GeneralSubtree_remove_pointer +( + const NSSPKIXGeneralSubtree *p +); + +NSS_EXTERN PRStatus +nss_pkix_PolicyConstraints_add_pointer +( + const NSSPKIXPolicyConstraints *p +); + +NSS_EXTERN PRStatus +nss_pkix_PolicyConstraints_remove_pointer +( + const NSSPKIXPolicyConstraints *p +); + +NSS_EXTERN PRStatus +nss_pkix_CRLDistPointsSyntax_add_pointer +( + const NSSPKIXCRLDistPointsSyntax *p +); + +NSS_EXTERN PRStatus +nss_pkix_CRLDistPointsSyntax_remove_pointer +( + const NSSPKIXCRLDistPointsSyntax *p +); + +NSS_EXTERN PRStatus +nss_pkix_DistributionPoint_add_pointer +( + const NSSPKIXDistributionPoint *p +); + +NSS_EXTERN PRStatus +nss_pkix_DistributionPoint_remove_pointer +( + const NSSPKIXDistributionPoint *p +); + +NSS_EXTERN PRStatus +nss_pkix_DistributionPointName_add_pointer +( + const NSSPKIXDistributionPointName *p +); + +NSS_EXTERN PRStatus +nss_pkix_DistributionPointName_remove_pointer +( + const NSSPKIXDistributionPointName *p +); + +NSS_EXTERN PRStatus +nss_pkix_ReasonFlags_add_pointer +( + const NSSPKIXReasonFlags *p +); + +NSS_EXTERN PRStatus +nss_pkix_ReasonFlags_remove_pointer +( + const NSSPKIXReasonFlags *p +); + +NSS_EXTERN PRStatus +nss_pkix_ExtKeyUsageSyntax_add_pointer +( + const NSSPKIXExtKeyUsageSyntax *p +); + +NSS_EXTERN PRStatus +nss_pkix_ExtKeyUsageSyntax_remove_pointer +( + const NSSPKIXExtKeyUsageSyntax *p +); + +NSS_EXTERN PRStatus +nss_pkix_AuthorityInfoAccessSyntax_add_pointer +( + const NSSPKIXAuthorityInfoAccessSyntax *p +); + +NSS_EXTERN PRStatus +nss_pkix_AuthorityInfoAccessSyntax_remove_pointer +( + const NSSPKIXAuthorityInfoAccessSyntax *p +); + +NSS_EXTERN PRStatus +nss_pkix_AccessDescription_add_pointer +( + const NSSPKIXAccessDescription *p +); + +NSS_EXTERN PRStatus +nss_pkix_AccessDescription_remove_pointer +( + const NSSPKIXAccessDescription *p +); + +NSS_EXTERN PRStatus +nss_pkix_IssuingDistributionPoint_add_pointer +( + const NSSPKIXIssuingDistributionPoint *p +); + +NSS_EXTERN PRStatus +nss_pkix_IssuingDistributionPoint_remove_pointer +( + const NSSPKIXIssuingDistributionPoint *p +); + +#endif /* DEBUG */ + +PR_END_EXTERN_C + +#endif /* PKIXM_H */ diff --git a/security/nss/lib/pkix/include/pkixt.h b/security/nss/lib/pkix/include/pkixt.h new file mode 100644 index 000000000..b620cfb8c --- /dev/null +++ b/security/nss/lib/pkix/include/pkixt.h @@ -0,0 +1,57 @@ +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is the Netscape security libraries. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1994-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the + * terms of the GNU General Public License Version 2 or later (the + * "GPL"), in which case the provisions of the GPL are applicable + * instead of those above. If you wish to allow use of your + * version of this file only under the terms of the GPL and not to + * allow others to use your version of this file under the MPL, + * indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by + * the GPL. If you do not delete the provisions above, a recipient + * may use your version of this file under either the MPL or the + * GPL. + */ + +#ifndef PKIXT_H +#define PKIXT_H + +#ifdef DEBUG +static const char PKIXT_CVS_ID[] = "@(#) $Source$ $Revision$ $Date$ $Name$"; +#endif /* DEBUG */ + +/* + * pkixt.h + * + * This file contains the private type definitions for the + * PKIX part-1 objects. Mostly, this file contains the actual + * structure definitions for the NSSPKIX types declared in nsspkixt.h. + */ + +#ifndef NSSPKIXT_H +#include "nsspkixt.h" +#endif /* NSSPKIXT_H */ + +PR_BEGIN_EXTERN_C + +PR_END_EXTERN_C + +#endif /* PKIXT_H */ diff --git a/security/nss/lib/pkix/include/pkixtm.h b/security/nss/lib/pkix/include/pkixtm.h new file mode 100644 index 000000000..1a9e57af0 --- /dev/null +++ b/security/nss/lib/pkix/include/pkixtm.h @@ -0,0 +1,1581 @@ +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is the Netscape security libraries. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1994-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the + * terms of the GNU General Public License Version 2 or later (the + * "GPL"), in which case the provisions of the GPL are applicable + * instead of those above. If you wish to allow use of your + * version of this file only under the terms of the GPL and not to + * allow others to use your version of this file under the MPL, + * indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by + * the GPL. If you do not delete the provisions above, a recipient + * may use your version of this file under either the MPL or the + * GPL. + */ + +#ifndef PKIXTM_H +#define PKIXTM_H + +#ifdef DEBUG +static const char PKIXTM_CVS_ID[] = "@(#) $Source$ $Revision$ $Date$ $Name$"; +#endif /* DEBUG */ + +/* + * pkixtm.h + * + * This file contains the module-private type definitions for the + * PKIX part-1 objects. Mostly, this file contains the actual + * structure definitions for the NSSPKIX types declared in nsspkixt.h. + */ + +#ifndef NSSPKIXT_H +#include "nsspkixt.h" +#endif /* NSSPKIXT_H */ + +PR_BEGIN_EXTERN_C + +/* + * Attribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Attribute ::= SEQUENCE { + * type AttributeType, + * values SET OF AttributeValue + * -- at least one value is required -- } + * + */ + +struct NSSPKIXAttributeStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSBER *ber; + NSSDER *der; + nssASN1Item asn1type; + nssASN1Item **asn1values; + NSSPKIXAttributeType *type; + PRUint32 valuesCount; +}; + +/* + * AttributeTypeAndValue + * + * This structure contains an attribute type (indicated by an OID), + * and the type-specific value. RelativeDistinguishedNamess consist + * of a set of these. These are distinct from Attributes (which have + * SET of values), from AttributeDescriptions (which have qualifiers + * on the types), and from AttributeValueAssertions (which assert a + * a value comparison under some matching rule). + * + * From RFC 2459: + * + * AttributeTypeAndValue ::= SEQUENCE { + * type AttributeType, + * value AttributeValue } + * + */ + +struct NSSPKIXAttributeTypeAndValueStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + nssASN1Item asn1type; + nssASN1Item asn1value; + NSSPKIXAttributeType *type; + NSSUTF8 *utf8; +}; + +/* + * X520Name + * + * From RFC 2459: + * + * X520name ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-name)), + * printableString PrintableString (SIZE (1..ub-name)), + * universalString UniversalString (SIZE (1..ub-name)), + * utf8String UTF8String (SIZE (1..ub-name)), + * bmpString BMPString (SIZE(1..ub-name)) } + * + * + * ub-name INTEGER ::= 32768 + * + */ + +struct NSSPKIXX520NameStr { + nssASN1Item string; + NSSUTF8 *utf8; + NSSDER *der; + PRBool wasPrintable; + PRBool inArena; +}; + +/* + * From RFC 2459: + * + * X520CommonName ::= CHOICE { + * teletexString TeletexString (SIZE (1..ub-common-name)), + * printableString PrintableString (SIZE (1..ub-common-name)), + * universalString UniversalString (SIZE (1..ub-common-name)), + * utf8String UTF8String (SIZE (1..ub-common-name)), + * bmpString BMPString (SIZE(1..ub-common-name)) } + * + * ub-common-name INTEGER ::= 64 + * + */ + +struct NSSPKIXX520CommonNameStr { +}; + +/* + * Name + * + * This structure contains a union of the possible name formats, + * which at the moment is limited to an RDNSequence. + * + * From RFC 2459: + * + * Name ::= CHOICE { -- only one possibility for now -- + * rdnSequence RDNSequence } + * + */ + +struct NSSPKIXNameStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *ber; + NSSDER *der; + NSSUTF8 *utf; + NSSPKIXNameChoice choice; + union { + NSSPKIXRDNSequence *rdnSequence; + } u; +}; + +/* + * RDNSequence + * + * This structure contains a sequence of RelativeDistinguishedName + * objects. + * + * From RFC 2459: + * + * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName + * + */ + +struct NSSPKIXRDNSequenceStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSBER *ber; + NSSDER *der; + NSSUTF8 *utf8; + PRUint32 count; + NSSPKIXRelativeDistinguishedName **rdns; +}; + +/* + * RelativeDistinguishedName + * + * This structure contains an unordered set of AttributeTypeAndValue + * objects. RDNs are used to distinguish a set of objects underneath + * a common object. + * + * Often, a single ATAV is sufficient to make a unique distinction. + * For example, if a company assigns its people unique uid values, + * then in the Name "uid=smith,ou=People,o=Acme,c=US" the "uid=smith" + * ATAV by itself forms an RDN. However, sometimes a set of ATAVs is + * needed. For example, if a company needed to distinguish between + * two Smiths by specifying their corporate divisions, then in the + * Name "(cn=Smith,ou=Sales),ou=People,o=Acme,c=US" the parenthesised + * set of ATAVs forms the RDN. + * + * From RFC 2459: + * + * RelativeDistinguishedName ::= + * SET SIZE (1 .. MAX) OF AttributeTypeAndValue + * + */ + +struct NSSPKIXRelativeDistinguishedNameStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSBER *ber; + NSSUTF8 *utf8; + PRUint32 count; + NSSPKIXAttributeTypeAndValue **atavs; +}; + +/* + * Certificate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Certificate ::= SEQUENCE { + * tbsCertificate TBSCertificate, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING } + * + */ + +struct NSSPKIXCertificateStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXTBSCertificate *tbsCertificate; + NSSPKIXAlgorithmIdentifier *signatureAlgorithm; + NSSItem *signature; +}; + +/* + * TBSCertificate + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TBSCertificate ::= SEQUENCE { + * version [0] Version DEFAULT v1, + * serialNumber CertificateSerialNumber, + * signature AlgorithmIdentifier, + * issuer Name, + * validity Validity, + * subject Name, + * subjectPublicKeyInfo SubjectPublicKeyInfo, + * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * extensions [3] Extensions OPTIONAL + * -- If present, version shall be v3 -- } + * + */ + +struct NSSPKIXTBSCertificateStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXVersion version; + NSSPKIXCertificateSerialNumber serialNumber; + NSSPKIXAlgorithmIdentifier *signature; + NSSPKIXName *issuer; + NSSPKIXValidity *validity; + NSSPKIXName *subject; + NSSPKIXSubjectPublicKeyInfo *subjectPublicKeyInfo; + NSSPKIXUniqueIdentifier *issuerUniqueID; + NSSPKIXUniqueIdentifier *subjectUniqueID; + NSSPKIXExtensions *extensions; +}; + +/* + * Validity + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Validity ::= SEQUENCE { + * notBefore Time, + * notAfter Time } + * + */ + +struct NSSPKIXValidityStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * Time + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Time ::= CHOICE { + * utcTime UTCTime, + * generalTime GeneralizedTime } + * + */ + +struct NSSPKIXTimeStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSBER *ber; + nssASN1Item asn1item; + PRTime prTime; + PRBool prTimeValid; +}; + +/* + * SubjectPublicKeyInfo + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectPublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * subjectPublicKey BIT STRING } + * + */ + +struct NSSPKIXSubjectPublicKeyInfoStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXAlgorithmIdentifier *algorithm; + NSSItem *subjectPublicKey; +}; + +/* + * Extensions + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension + * + */ + +struct NSSPKIXExtensionsStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * Extension + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * Extension ::= SEQUENCE { + * extnID OBJECT IDENTIFIER, + * critical BOOLEAN DEFAULT FALSE, + * extnValue OCTET STRING } + * + */ + +struct NSSPKIXExtensionStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSOID *extnID; + PRBool critical; + NSSItem *extnValue; +}; + +/* + * CertificateList + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificateList ::= SEQUENCE { + * tbsCertList TBSCertList, + * signatureAlgorithm AlgorithmIdentifier, + * signature BIT STRING } + * + */ + +struct NSSPKIXCertificateListStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXTBSCertList *tbsCertList; + NSSPKIXAlgorithmIdentifier *signatureAlgorithm; + NSSItem *signature; +}; + +/* + * TBSCertList + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TBSCertList ::= SEQUENCE { + * version Version OPTIONAL, + * -- if present, shall be v2 + * signature AlgorithmIdentifier, + * issuer Name, + * thisUpdate Time, + * nextUpdate Time OPTIONAL, + * revokedCertificates SEQUENCE OF SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * crlExtensions [0] Extensions OPTIONAL + * -- if present, shall be v2 -- } + * + */ + +struct NSSPKIXTBSCertListStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXVersion version; + NSSPKIXAlgorithmIdentifier *signature; + NSSPKIXName *issuer; + -time- thisUpdate; + -time- nextUpdate; + NSSPKIXrevokedCertificates *revokedCertificates; + NSSPKIXExtensions *crlExtensions; +}; + +/* + * revokedCertificates + * + * This is a "helper type" to simplify handling of TBSCertList objects. + * + * revokedCertificates SEQUENCE OF SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * + */ + +struct NSSPKIXrevokedCertificatesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * revokedCertificate + * + * This is a "helper type" to simplify handling of TBSCertList objects. + * + * SEQUENCE { + * userCertificate CertificateSerialNumber, + * revocationDate Time, + * crlEntryExtensions Extensions OPTIONAL + * -- if present, shall be v2 + * } OPTIONAL, + * + */ + +struct NSSPKIXrevokedCertificateStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXCertificateSerialNumber *userCertificate; + -time- revocationDate; + NSSPKIXExtensions *crlEntryExtensions; +}; + +/* + * AlgorithmIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * (1988 syntax) + * + * AlgorithmIdentifier ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, + * parameters ANY DEFINED BY algorithm OPTIONAL } + * -- contains a value of the type + * -- registered for use with the + * -- algorithm object identifier value + * + * + */ + +struct NSSPKIXAlgorithmIdentifierStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSBER *ber; + NSSOID *algorithm; + NSSItem *parameters; +}; + +/* + * -- types related to NSSPKIXAlgorithmIdentifiers: + * + * Dss-Sig-Value ::= SEQUENCE { + * r INTEGER, + * s INTEGER } + * + * DomainParameters ::= SEQUENCE { + * p INTEGER, -- odd prime, p=jq +1 + * g INTEGER, -- generator, g + * q INTEGER, -- factor of p-1 + * j INTEGER OPTIONAL, -- subgroup factor, j>= 2 + * validationParms ValidationParms OPTIONAL } + * + * ValidationParms ::= SEQUENCE { + * seed BIT STRING, + * pgenCounter INTEGER } + * + * Dss-Parms ::= SEQUENCE { + * p INTEGER, + * q INTEGER, + * g INTEGER } + * + */ + +/* + * ORAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ORAddress ::= SEQUENCE { + * built-in-standard-attributes BuiltInStandardAttributes, + * built-in-domain-defined-attributes + * BuiltInDomainDefinedAttributes OPTIONAL, + * -- see also teletex-domain-defined-attributes + * extension-attributes ExtensionAttributes OPTIONAL } + * -- The OR-address is semantically absent from the OR-name if the + * -- built-in-standard-attribute sequence is empty and the + * -- built-in-domain-defined-attributes and extension-attributes are + * -- both omitted. + * + */ + +struct NSSPKIXORAddressStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXBuiltInStandardAttributes *builtInStandardAttributes; + NSSPKIXBuiltInDomainDefinedAttributes *builtInDomainDefinedAttributes; + NSSPKIXExtensionsAttributes *extensionAttributes; +}; + +/* + * BuiltInStandardAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInStandardAttributes ::= SEQUENCE { + * country-name CountryName OPTIONAL, + * administration-domain-name AdministrationDomainName OPTIONAL, + * network-address [0] NetworkAddress OPTIONAL, + * -- see also extended-network-address + * terminal-identifier [1] TerminalIdentifier OPTIONAL, + * private-domain-name [2] PrivateDomainName OPTIONAL, + * organization-name [3] OrganizationName OPTIONAL, + * -- see also teletex-organization-name + * numeric-user-identifier [4] NumericUserIdentifier OPTIONAL, + * personal-name [5] PersonalName OPTIONAL, + * -- see also teletex-personal-name + * organizational-unit-names [6] OrganizationalUnitNames OPTIONAL + * -- see also teletex-organizational-unit-names -- } + * + */ + +struct NSSPKIXBuiltInStandardAttributesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXCountryName *countryName; + NSSPKIXAdministrationDomainName *administrationDomainName; + NSSPKIXNetworkAddress *networkAddress; + NSSPKIXTerminalIdentifier *terminalIdentifier; + NSSPKIXPrivateDomainName *privateDomainName; + NSSPKIXOrganizationName *organizationName; + NSSPKIXNumericUserIdentifier *numericUserIdentifier; + NSSPKIXPersonalName *personalName; + NSSPKIXOrganizationalUnitNames *organizationalUnitNames; +}; + +/* + * PersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PersonalName ::= SET { + * surname [0] PrintableString (SIZE (1..ub-surname-length)), + * given-name [1] PrintableString + * (SIZE (1..ub-given-name-length)) OPTIONAL, + * initials [2] PrintableString (SIZE (1..ub-initials-length)) OPTIONAL, + * generation-qualifier [3] PrintableString + * (SIZE (1..ub-generation-qualifier-length)) OPTIONAL } + * + */ + +struct NSSPKIXPersonalNameStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSUTF8 *surname; + NSSUTF8 *givenName; + NSSUTF8 *initials; + NSSUTF8 *generationQualifier; +}; + +/* + * OrganizationalUnitNames + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units) + * OF OrganizationalUnitName + * + */ + +struct NSSPKIXOrganizationalUnitNamesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * BuiltInDomainDefinedAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE + * (1..ub-domain-defined-attributes) OF + * BuiltInDomainDefinedAttribute + * + */ + +struct NSSPKIXBuiltInDomainDefinedAttributesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * BuiltInDomainDefinedAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BuiltInDomainDefinedAttribute ::= SEQUENCE { + * type PrintableString (SIZE + * (1..ub-domain-defined-attribute-type-length)), + * value PrintableString (SIZE + * (1..ub-domain-defined-attribute-value-length))} + * + */ + +struct NSSPKIXBuiltInDomainDefinedAttributeStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSUTF8 *type; + NSSUTF8 *value; +}; + +/* + * ExtensionAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF + * ExtensionAttribute + * + */ + +struct NSSPKIXExtensionAttributesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * ExtensionAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtensionAttribute ::= SEQUENCE { + * extension-attribute-type [0] INTEGER (0..ub-extension-attributes), + * extension-attribute-value [1] + * ANY DEFINED BY extension-attribute-type } + * + */ + +struct NSSPKIXExtensionAttributeStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXExtensionsAttributeType extensionAttributeType; + NSSItem *extensionAttributeValue; +}; + +/* + * TeletexPersonalName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexPersonalName ::= SET { + * surname [0] TeletexString (SIZE (1..ub-surname-length)), + * given-name [1] TeletexString + * (SIZE (1..ub-given-name-length)) OPTIONAL, + * initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL, + * generation-qualifier [3] TeletexString (SIZE + * (1..ub-generation-qualifier-length)) OPTIONAL } + * + */ + +struct NSSPKIXTeletexPersonalNameStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSUTF8 *surname; + NSSUTF8 *givenName; + NSSUTF8 *initials; + NSSUTF8 *generationQualifier; +}; + +/* + * TeletexOrganizationalUnitNames + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexOrganizationalUnitNames ::= SEQUENCE SIZE + * (1..ub-organizational-units) OF TeletexOrganizationalUnitName + * + */ + +struct NSSPKIXTeletexOrganizationalUnitNamesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * PDSParameter + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PDSParameter ::= SET { + * printable-string PrintableString + * (SIZE(1..ub-pds-parameter-length)) OPTIONAL, + * teletex-string TeletexString + * (SIZE(1..ub-pds-parameter-length)) OPTIONAL } + * + */ + +struct NSSPKIXPDSParameterStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSUTF8 *printableString; + NSSTUF8 *teletexString; +}; + +/* + * UnformattedPostalAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UnformattedPostalAddress ::= SET { + * printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF + * PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL, + * teletex-string TeletexString + * (SIZE (1..ub-unformatted-address-length)) OPTIONAL } + * + */ + +struct NSSPKIXUnformattedPostalAddressStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... + NSSUTF8 *teletexString; +}; + +/* + * ExtendedNetworkAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtendedNetworkAddress ::= CHOICE { + * e163-4-address SEQUENCE { + * number [0] NumericString (SIZE (1..ub-e163-4-number-length)), + * sub-address [1] NumericString + * (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, + * psap-address [0] PresentationAddress } + * + */ + +struct NSSPKIXExtendedNetworkAddressStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXExtendedNetworkAddressChoice choice; + union { + NSSe1634address *e1634Address; + NSSPKIXPresentationAddress *psapAddress; + } u; +}; + +/* + * e163-4-address + * + * Helper structure for ExtendedNetworkAddress. + * -- fgmr comments -- + * + * From RFC 2459: + * + * e163-4-address SEQUENCE { + * number [0] NumericString (SIZE (1..ub-e163-4-number-length)), + * sub-address [1] NumericString + * (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL }, + * + */ + +struct NSSe1634addressStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSUTF8 *number; + NSSUTF8 *subAddress; +}; + +/* + * PresentationAddress + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PresentationAddress ::= SEQUENCE { + * pSelector [0] EXPLICIT OCTET STRING OPTIONAL, + * sSelector [1] EXPLICIT OCTET STRING OPTIONAL, + * tSelector [2] EXPLICIT OCTET STRING OPTIONAL, + * nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING } + * + */ + +struct NSSPKIXPresentationAddressStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSItem *pSelector; + NSSItem *sSelector; + NSSItem *tSelector; + NSSItem *nAddresses[]; --fgmr-- +}; + +/* + * TeletexDomainDefinedAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexDomainDefinedAttributes ::= SEQUENCE SIZE + * (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute + * + */ + +struct NSSPKIXTeletexDomainDefinedAttributesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * TeletexDomainDefinedAttribute + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * TeletexDomainDefinedAttribute ::= SEQUENCE { + * type TeletexString + * (SIZE (1..ub-domain-defined-attribute-type-length)), + * value TeletexString + * (SIZE (1..ub-domain-defined-attribute-value-length)) } + * + */ + +struct NSSPKIXTeletexDomainDefinedAttributeStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSUTF8 *type; + NSSUTF8 *value; +}; + +/* + * AuthorityKeyIdentifier + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AuthorityKeyIdentifier ::= SEQUENCE { + * keyIdentifier [0] KeyIdentifier OPTIONAL, + * authorityCertIssuer [1] GeneralNames OPTIONAL, + * authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL } + * -- authorityCertIssuer and authorityCertSerialNumber shall both + * -- be present or both be absent + * + */ + +struct NSSPKIXAuthorityKeyIdentifierStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXKeyIdentifier *keyIdentifier; + NSSPKIXGeneralNames *authorityCertIssuer; + NSSPKIXCertificateSerialNumber *authorityCertSerialNumber; +}; + +/* + * KeyUsage + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * KeyUsage ::= BIT STRING { + * digitalSignature (0), + * nonRepudiation (1), + * keyEncipherment (2), + * dataEncipherment (3), + * keyAgreement (4), + * keyCertSign (5), + * cRLSign (6), + * encipherOnly (7), + * decipherOnly (8) } + * + */ + +struct NSSPKIXKeyUsageStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXKeyUsageValue keyUsage; +}; + +/* + * PrivateKeyUsagePeriod + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PrivateKeyUsagePeriod ::= SEQUENCE { + * notBefore [0] GeneralizedTime OPTIONAL, + * notAfter [1] GeneralizedTime OPTIONAL } + * -- either notBefore or notAfter shall be present + * + */ + +struct NSSPKIXPrivateKeyUsagePeriodStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + --time-- + --time-- +}; + +/* + * CertificatePolicies + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation + * + */ + +struct NSSPKIXCertificatePoliciesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * PolicyInformation + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyInformation ::= SEQUENCE { + * policyIdentifier CertPolicyId, + * policyQualifiers SEQUENCE SIZE (1..MAX) OF + * PolicyQualifierInfo OPTIONAL } + * + */ + +struct NSSPKIXPolicyInformationStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXCertPolicyId *policyIdentifier; + NSSPKIXPolicyQualifierInfo *policyQualifiers[]; + --fgmr-- +}; + +/* + * PolicyQualifierInfo + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyQualifierInfo ::= SEQUENCE { + * policyQualifierId PolicyQualifierId, + * qualifier ANY DEFINED BY policyQualifierId } + * + */ + +struct NSSPKIXPolicyQualifierInfoStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXPolicyQualifierId *policyQualifierId; + NSSItem *qualifier; +}; + +/* + * UserNotice + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * UserNotice ::= SEQUENCE { + * noticeRef NoticeReference OPTIONAL, + * explicitText DisplayText OPTIONAL} + * + */ + +struct NSSPKIXUserNoticeStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXNoticeReference *noticeRef; + NSSPKIXDisplayText *explicitText; +}; + +/* + * NoticeReference + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NoticeReference ::= SEQUENCE { + * organization DisplayText, + * noticeNumbers SEQUENCE OF INTEGER } + * + */ + +struct NSSPKIXNoticeReferenceStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXDisplayText *organization; + NSSItem *noticeNumbers[]; --fgmr-- + ... +}; + +/* + * PolicyMappings + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE { + * issuerDomainPolicy CertPolicyId, + * subjectDomainPolicy CertPolicyId } + * + */ + +struct NSSPKIXPolicyMappingsStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXpolicyMapping *policyMappings[]; --fgmr-- + ... +}; + +/* + * policyMapping + * + * Helper structure for PolicyMappings + * + * SEQUENCE { + * issuerDomainPolicy CertPolicyId, + * subjectDomainPolicy CertPolicyId } + * + */ + +struct NSSPKIXpolicyMappingStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXCertPolicyId *issuerDomainPolicy; + NSSPKIXCertPolicyId *subjectDomainPolicy; +}; + +/* + * GeneralName + * + * This structure contains a union of the possible general names, + * of which there are several. + * + * From RFC 2459: + * + * GeneralName ::= CHOICE { + * otherName [0] AnotherName, + * rfc822Name [1] IA5String, + * dNSName [2] IA5String, + * x400Address [3] ORAddress, + * directoryName [4] Name, + * ediPartyName [5] EDIPartyName, + * uniformResourceIdentifier [6] IA5String, + * iPAddress [7] OCTET STRING, + * registeredID [8] OBJECT IDENTIFIER } + * + */ + +struct NSSPKIXGeneralNameStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXGeneralNameChoice choice; + union { + NSSPKIXAnotherName *otherName; + NSSUTF8 *rfc822Name; + NSSUTF8 *dNSName; + NSSPKIXORAddress *x400Address; + NSSPKIXName *directoryName; + NSSEDIPartyName *ediPartyName; + NSSUTF8 *uniformResourceIdentifier; + NSSItem *iPAddress; + NSSOID *registeredID; + } u; +}; + +/* + * GeneralNames + * + * This structure contains a sequence of GeneralName objects. + * + * From RFC 2459: + * + * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName + * + */ + +struct NSSPKIXGeneralNamesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * AnotherName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AnotherName ::= SEQUENCE { + * type-id OBJECT IDENTIFIER, + * value [0] EXPLICIT ANY DEFINED BY type-id } + * + */ + +struct NSSPKIXAnotherNameStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSOID *typeId; + NSSItem *value; +}; + +/* + * EDIPartyName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * + * EDIPartyName ::= SEQUENCE { + * nameAssigner [0] DirectoryString OPTIONAL, + * partyName [1] DirectoryString } + * + */ + +struct NSSPKIXEDIPartyNameStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXDirectoryString *nameAssigner; + NSSPKIXDirectoryString *partyname; +}; + +/* + * SubjectDirectoryAttributes + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute + * + */ + +struct NSSPKIXSubjectDirectoryAttributesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * BasicConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * BasicConstraints ::= SEQUENCE { + * cA BOOLEAN DEFAULT FALSE, + * pathLenConstraint INTEGER (0..MAX) OPTIONAL } + * + */ + +struct NSSPKIXBasicConstraintsStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + PRBool cA; + PRInt32 pathLenConstraint; --fgmr-- +}; + +/* + * NameConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * NameConstraints ::= SEQUENCE { + * permittedSubtrees [0] GeneralSubtrees OPTIONAL, + * excludedSubtrees [1] GeneralSubtrees OPTIONAL } + * + */ + +struct NSSPKIXNameConstraintsStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXGeneralSubtrees *permittedSubtrees; + NSSPKIXGeneralSubtrees *excludedSubtrees; +}; + +/* + * GeneralSubtrees + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree + * + */ + +struct NSSPKIXGeneralSubtreesStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * GeneralSubtree + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * GeneralSubtree ::= SEQUENCE { + * base GeneralName, + * minimum [0] BaseDistance DEFAULT 0, + * maximum [1] BaseDistance OPTIONAL } + * + */ + +struct NSSPKIXGeneralSubtreeStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXGeneralName; + NSSPKIXBaseDistance minimum; + NSSPKIXBaseDistance maximum; +}; + +/* + * PolicyConstraints + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * PolicyConstraints ::= SEQUENCE { + * requireExplicitPolicy [0] SkipCerts OPTIONAL, + * inhibitPolicyMapping [1] SkipCerts OPTIONAL } + * + */ + +struct NSSPKIXPolicyConstraintsStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXSkipCerts *requireExplicitPolicy; + NSSPKIXSkipCerts *inhibitPolicyMapping; +}; + +/* + * CRLDistPointsSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint + * + */ + +struct NSSPKIXCRLDistPointsSyntaxStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * DistributionPoint + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistributionPoint ::= SEQUENCE { + * distributionPoint [0] DistributionPointName OPTIONAL, + * reasons [1] ReasonFlags OPTIONAL, + * cRLIssuer [2] GeneralNames OPTIONAL } + * + */ + +struct NSSPKIXDistributionPointStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXDistributionPointName *distributionPoint; + NSSPKIXReasonFlags *reasons; + NSSPKIXGeneralNames *cRLIssuer; +}; + +/* + * DistributionPointName + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * DistributionPointName ::= CHOICE { + * fullName [0] GeneralNames, + * nameRelativeToCRLIssuer [1] RelativeDistinguishedName } + * + */ + +struct NSSPKIXDistributionPointNameStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXDistributionPointNameChoice choice; + union { + NSSPKIXGeneralNames *fullName; + NSSPKIXRelativeDistinguishedName *nameRelativeToCRLIssuer; + } u; +}; + +/* + * ReasonFlags + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ReasonFlags ::= BIT STRING { + * unused (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6) } + * + */ + +struct NSSPKIXReasonFlagsStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXReasonFlagsMask reasonFlags; +}; + +/* + * ExtKeyUsageSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId + * + */ + +struct NSSPKIXExtKeyUsageSyntaxStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * AuthorityInfoAccessSyntax + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AuthorityInfoAccessSyntax ::= + * SEQUENCE SIZE (1..MAX) OF AccessDescription + * + */ + +struct NSSPKIXAuthorityInfoAccessSyntaxStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + ... +}; + +/* + * AccessDescription + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * AccessDescription ::= SEQUENCE { + * accessMethod OBJECT IDENTIFIER, + * accessLocation GeneralName } + * + */ + +struct NSSPKIXAccessDescriptionStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSOID *accessMethod; + NSSPKIXGeneralName *accessLocation; +}; + +/* + * IssuingDistributionPoint + * + * -- fgmr comments -- + * + * From RFC 2459: + * + * IssuingDistributionPoint ::= SEQUENCE { + * distributionPoint [0] DistributionPointName OPTIONAL, + * onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE, + * onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE, + * onlySomeReasons [3] ReasonFlags OPTIONAL, + * indirectCRL [4] BOOLEAN DEFAULT FALSE } + * + */ + +struct NSSPKIXIssuingDistributionPointStr { + NSSArena *arena; + PRBool i_allocated_arena; + NSSDER *der; + NSSPKIXDistributionPointName *distributionPoint; + PRBool onlyContainsUserCerts; + PRBool onlyContainsCACerts; + NSSPKIXReasonFlags onlySomeReasons; + PRBool indirectCRL; +}; + +PR_END_EXTERN_C + +#endif /* PKIXTM_H */ |