pkix.h
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:553k
源码类别:

CA认证

开发平台:

WINDOWS

  1.  *
  2.  */
  3. /*
  4.  * nssPKIXKeyUsage_Decode
  5.  *
  6.  * -- fgmr comments --
  7.  *
  8.  * The error may be one of the following values:
  9.  *  NSS_ERROR_INVALID_BER
  10.  *  NSS_ERROR_NO_MEMORY
  11.  *  NSS_ERROR_INVALID_ARENA
  12.  *
  13.  * Return value:
  14.  *  A valid pointer to an NSSPKIXKeyUsage upon success
  15.  *  NULL upon failure
  16.  */
  17. NSS_EXTERN NSSPKIXKeyUsage *
  18. nssPKIXKeyUsage_Decode
  19. (
  20.   NSSArena *arenaOpt,
  21.   NSSBER *ber
  22. );
  23. /*
  24.  * nssPKIXKeyUsage_CreateFromUTF8
  25.  *
  26.  * -- fgmr comments --
  27.  *
  28.  * The error may be one of the following values:
  29.  *  NSS_ERROR_INVALID_STRING
  30.  *  NSS_ERROR_NO_MEMORY
  31.  *  NSS_ERROR_INVALID_ARENA
  32.  *
  33.  * Return value:
  34.  *  A valid pointer to an NSSPKIXKeyUsage upon success
  35.  *  NULL upon failure
  36.  */
  37. NSS_EXTERN NSSPKIXKeyUsage *
  38. nssPKIXKeyUsage_CreateFromUTF8
  39. (
  40.   NSSArena *arenaOpt,
  41.   NSSUTF8 *utf8
  42. );
  43. /*
  44.  * nssPKIXKeyUsage_CreateFromValue
  45.  *
  46.  * -- fgmr comments --
  47.  *
  48.  * The error may be one of the following values:
  49.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE_VALUE
  50.  *  NSS_ERROR_NO_MEMORY
  51.  *  NSS_ERROR_INVALID_ARENA
  52.  *
  53.  * Return value:
  54.  *  A valid pointer to an NSSPKIXKeyUsage upon success
  55.  *  NULL upon failure
  56.  */
  57. NSS_EXTERN NSSPKIXKeyUsage *
  58. nssPKIXKeyUsage_CreateFromValue
  59. (
  60.   NSSArena *arenaOpt,
  61.   NSSPKIXKeyUsageValue value
  62. );
  63. /*
  64.  * nssPKIXKeyUsage_Destroy
  65.  *
  66.  * -- fgmr comments --
  67.  *
  68.  * The error may be one of the following values:
  69.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE
  70.  *
  71.  * Return value:
  72.  *  PR_SUCCESS upon success
  73.  *  PR_FAILURE upon failure
  74.  */
  75. NSS_EXTERN PRStatus
  76. nssPKIXKeyUsage_Destroy
  77. (
  78.   NSSPKIXKeyUsage *keyUsage
  79. );
  80. /*
  81.  * nssPKIXKeyUsage_Encode
  82.  *
  83.  * -- fgmr comments --
  84.  *
  85.  * The error may be one of the following values:
  86.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE
  87.  *  NSS_ERROR_INVALID_ARENA
  88.  *  NSS_ERROR_NO_MEMORY
  89.  *
  90.  * Return value:
  91.  *  A valid NSSBER pointer upon success
  92.  *  NULL upon failure
  93.  */
  94. NSS_EXTERN NSSBER *
  95. nssPKIXKeyUsage_Encode
  96. (
  97.   NSSPKIXKeyUsage *keyUsage,
  98.   NSSASN1EncodingType encoding,
  99.   NSSBER *rvOpt,
  100.   NSSArena *arenaOpt
  101. );
  102. /*
  103.  * nssPKIXKeyUsage_GetUTF8Encoding
  104.  *
  105.  * -- fgmr comments --
  106.  *
  107.  * The error may be one of the following values:
  108.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE
  109.  *  NSS_ERROR_INVALID_ARENA
  110.  *  NSS_ERROR_NO_MEMORY
  111.  *
  112.  * Return value:
  113.  *  A valid NSSUTF8 pointer upon success
  114.  *  NULL upon failure
  115.  */
  116. NSS_EXTERN NSSUTF8 *
  117. nssPKIXKeyUsage_GetUTF8Encoding
  118. (
  119.   NSSPKIXKeyUsage *keyUsage,
  120.   NSSArena *arenaOpt
  121. );
  122. /*
  123.  * nssPKIXKeyUsage_GetValue
  124.  *
  125.  * -- fgmr comments --
  126.  *
  127.  * The error may be one of the following values:
  128.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE
  129.  *
  130.  * Return value:
  131.  *  A set of NSSKeyUsageValue values OR-d together upon success
  132.  *  NSSKeyUsage_NSSinvalid upon failure
  133.  */
  134. NSS_EXTERN NSSKeyUsageValue
  135. nssPKIXKeyUsage_GetValue
  136. (
  137.   NSSPKIXKeyUsage *keyUsage
  138. );
  139. /*
  140.  * nssPKIXKeyUsage_SetValue
  141.  *
  142.  * -- fgmr comments --
  143.  *
  144.  * The error may be one of the following values:
  145.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE
  146.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE_VALUE
  147.  *
  148.  * Return value:
  149.  *  PR_SUCCESS upon success
  150.  *  PR_FAILURE upon failure
  151.  */
  152. NSS_EXTERN PRStatus
  153. nssPKIXKeyUsage_SetValue
  154. (
  155.   NSSPKIXKeyUsage *keyUsage,
  156.   NSSPKIXKeyUsageValue value
  157. );
  158. /*
  159.  * nssPKIXKeyUsage_Equal
  160.  *
  161.  * -- fgmr comments --
  162.  *
  163.  * The error may be one of the following values:
  164.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE
  165.  *
  166.  * Return value:
  167.  *  PR_TRUE if the two objects have equal values
  168.  *  PR_FALSE otherwise
  169.  *  PR_FALSE upon error
  170.  */
  171. NSS_EXTERN PRBool
  172. nssPKIXKeyUsage_Equal
  173. (
  174.   NSSPKIXKeyUsage *keyUsage1,
  175.   NSSPKIXKeyUsage *keyUsage2,
  176.   PRStatus *statusOpt
  177. );
  178. /*
  179.  * nssPKIXKeyUsage_Duplicate
  180.  *
  181.  * -- fgmr comments --
  182.  *
  183.  * The error may be one of the following values:
  184.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE
  185.  *  NSS_ERROR_NO_MEMORY
  186.  *  NSS_ERROR_INVALID_ARENA
  187.  *
  188.  * Return value:
  189.  *  A valid pointer to an NSSPKIXKeyUsage upon success
  190.  *  NULL upon failure
  191.  */
  192. NSS_EXTERN NSSPKIXKeyUsage *
  193. nssPKIXKeyUsage_Duplicate
  194. (
  195.   NSSPKIXKeyUsage *keyUsage,
  196.   NSSArena *arenaOpt
  197. );
  198. #ifdef DEBUG
  199. /*
  200.  * nssPKIXKeyUsage_verifyPointer
  201.  *
  202.  * This method is only present in debug builds.
  203.  *
  204.  * If the specified pointer is a valid pointer to an NSSPKIXKeyUsage
  205.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  206.  * put an error on the error stack and return PR_FAILURE.
  207.  *
  208.  * The error may be one of the following values:
  209.  *  NSS_ERROR_INVALID_PKIX_KEY_USAGE
  210.  *
  211.  * Return value:
  212.  *  PR_SUCCESS if the pointer is valid
  213.  *  PR_FAILURE if it isn't
  214.  */
  215. NSS_EXTERN PRStatus
  216. nssPKIXKeyUsage_verifyPointer
  217. (
  218.   NSSPKIXKeyUsage *p
  219. );
  220. #endif /* DEBUG */
  221. /*
  222.  * PrivateKeyUsagePeriod
  223.  *
  224.  * -- fgmr comments --
  225.  *
  226.  * From RFC 2459:
  227.  *
  228.  *  PrivateKeyUsagePeriod ::= SEQUENCE {
  229.  *       notBefore       [0]     GeneralizedTime OPTIONAL,
  230.  *       notAfter        [1]     GeneralizedTime OPTIONAL }
  231.  *       -- either notBefore or notAfter shall be present
  232.  *
  233.  * The private calls for the type:
  234.  *
  235.  *  nssPKIXPrivateKeyUsagePeriod_Decode
  236.  *  nssPKIXPrivateKeyUsagePeriod_Create
  237.  *  nssPKIXPrivateKeyUsagePeriod_Destroy
  238.  *  nssPKIXPrivateKeyUsagePeriod_Encode
  239.  *  nssPKIXPrivateKeyUsagePeriod_HasNotBefore
  240.  *  nssPKIXPrivateKeyUsagePeriod_GetNotBefore
  241.  *  nssPKIXPrivateKeyUsagePeriod_SetNotBefore
  242.  *  nssPKIXPrivateKeyUsagePeriod_RemoveNotBefore
  243.  *  nssPKIXPrivateKeyUsagePeriod_HasNotAfter
  244.  *  nssPKIXPrivateKeyUsagePeriod_GetNotAfter
  245.  *  nssPKIXPrivateKeyUsagePeriod_SetNotAfter
  246.  *  nssPKIXPrivateKeyUsagePeriod_RemoveNotAfter
  247.  *  nssPKIXPrivateKeyUsagePeriod_Equal
  248.  *  nssPKIXPrivateKeyUsagePeriod_Duplicate
  249.  * 
  250.  * In debug builds, the following call is available:
  251.  *
  252.  *  nssPKIXPrivateKeyUsagePeriod_verifyPointer
  253.  *
  254.  */
  255. /*
  256.  * nssPKIXPrivateKeyUsagePeriod_Decode
  257.  *
  258.  * -- fgmr comments --
  259.  *
  260.  * The error may be one of the following values:
  261.  *  NSS_ERROR_INVALID_BER
  262.  *  NSS_ERROR_NO_MEMORY
  263.  *  NSS_ERROR_INVALID_ARENA
  264.  *
  265.  * Return value:
  266.  *  A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success
  267.  *  NULL upon failure
  268.  */
  269. NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod *
  270. nssPKIXPrivateKeyUsagePeriod_Decode
  271. (
  272.   NSSArena *arenaOpt,
  273.   NSSBER *ber
  274. );
  275. /*
  276.  * nssPKIXPrivateKeyUsagePeriod_Create
  277.  *
  278.  * -- fgmr comments --
  279.  *
  280.  * The error may be one of the following values:
  281.  *  NSS_ERROR_NO_MEMORY
  282.  *  NSS_ERROR_INVALID_ARENA
  283.  *  NSS_ERROR_INVALID_TIME
  284.  *  NSS_ERROR_INVALID_ARGUMENTS
  285.  *
  286.  * Return value:
  287.  *  A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success
  288.  *  NULL upon failure
  289.  */
  290. NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod *
  291. nssPKIXPrivateKeyUsagePeriod_Create
  292. (
  293.   NSSArena *arenaOpt,
  294.   NSSTime *notBeforeOpt,
  295.   NSSTime *notAfterOpt
  296. );
  297. /*
  298.  * nssPKIXPrivateKeyUsagePeriod_Destroy
  299.  *
  300.  * -- fgmr comments --
  301.  *
  302.  * The error may be one of the following values:
  303.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  304.  *
  305.  * Return value:
  306.  *  PR_SUCCESS upon success
  307.  *  PR_FAILURE upon failure
  308.  */
  309. NSS_EXTERN PRStatus
  310. nssPKIXPrivateKeyUsagePeriod_Destroy
  311. (
  312.   NSSPKIXPrivateKeyUsagePeriod *period
  313. );
  314. /*
  315.  * nssPKIXPrivateKeyUsagePeriod_Encode
  316.  *
  317.  * -- fgmr comments --
  318.  *
  319.  * The error may be one of the following values:
  320.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  321.  *  NSS_ERROR_INVALID_ARENA
  322.  *  NSS_ERROR_NO_MEMORY
  323.  *  NSS_ERROR_INVALID_DATA
  324.  *
  325.  * Return value:
  326.  *  A valid NSSBER pointer upon success
  327.  *  NULL upon failure
  328.  */
  329. NSS_EXTERN NSSBER *
  330. nssPKIXPrivateKeyUsagePeriod_Encode
  331. (
  332.   NSSPKIXPrivateKeyUsagePeriod *period,
  333.   NSSASN1EncodingType encoding,
  334.   NSSBER *rvOpt,
  335.   NSSArena *arenaOpt
  336. );
  337. /*
  338.  * nssPKIXPrivateKeyUsagePeriod_HasNotBefore
  339.  *
  340.  * -- fgmr comments --
  341.  *
  342.  * The error may be one of the following values:
  343.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  344.  *
  345.  * Return value:
  346.  *  PR_TRUE if it has one
  347.  *  PR_FALSE if it doesn't
  348.  *  PR_FALSE upon failure
  349.  */
  350. NSS_EXTERN PRBool
  351. nssPKIXPrivateKeyUsagePeriod_HasNotBefore
  352. (
  353.   NSSPKIXPrivateKeyUsagePeriod *period,
  354.   PRStatus *statusOpt
  355. );
  356. /*
  357.  * nssPKIXPrivateKeyUsagePeriod_GetNotBefore
  358.  *
  359.  * -- fgmr comments --
  360.  *
  361.  * The error may be one of the following values:
  362.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  363.  *  NSS_ERROR_INVALID_ARENA
  364.  *  NSS_ERROR_NO_MEMORY
  365.  *  NSS_ERROR_HAS_NO_NOT_BEFORE
  366.  *
  367.  * Return value:
  368.  *  NSSTime {fgmr!}
  369.  *  NULL upon failure
  370.  */
  371. NSS_EXTERN NSSTime *
  372. nssPKIXPrivateKeyUsagePeriod_GetNotBefore
  373. (
  374.   NSSPKIXPrivateKeyUsagePeriod *period,
  375.   NSSArena *arenaOpt
  376. );
  377. /*
  378.  * nssPKIXPrivateKeyUsagePeriod_SetNotBefore
  379.  *
  380.  * -- fgmr comments --
  381.  *
  382.  * The error may be one of the following values:
  383.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  384.  *  NSS_ERROR_INVALID_TIME
  385.  *  NSS_ERROR_NO_MEMORY
  386.  *
  387.  * Return value:
  388.  *  PR_SUCCESS upon success
  389.  *  PR_FAILURE upon failure
  390.  */
  391. NSS_EXTERN PRStatus
  392. nssPKIXPrivateKeyUsagePeriod_SetNotBefore
  393. (
  394.   NSSPKIXPrivateKeyUsagePeriod *period,
  395.   NSSTime *notBefore
  396. );
  397. /*
  398.  * nssPKIXPrivateKeyUsagePeriod_RemoveNotBefore
  399.  *
  400.  * -- fgmr comments --
  401.  *
  402.  * The error may be one of the following values:
  403.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  404.  *  NSS_ERROR_HAS_NO_NOT_BEFORE
  405.  *
  406.  * Return value:
  407.  *  PR_SUCCESS upon success
  408.  *  PR_FAILURE upon failure
  409.  */
  410. NSS_EXTERN PRStatus
  411. nssPKIXPrivateKeyUsagePeriod_RemoveNotBefore
  412. (
  413.   NSSPKIXPrivateKeyUsagePeriod *period
  414. );
  415. /*
  416.  * nssPKIXPrivateKeyUsagePeriod_HasNotAfter
  417.  *
  418.  * -- fgmr comments --
  419.  *
  420.  * The error may be one of the following values:
  421.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  422.  *
  423.  * Return value:
  424.  *  PR_TRUE if it has one
  425.  *  PR_FALSE if it doesn't
  426.  *  PR_FALSE upon failure
  427.  */
  428. NSS_EXTERN PRBool
  429. nssPKIXPrivateKeyUsagePeriod_HasNotAfter
  430. (
  431.   NSSPKIXPrivateKeyUsagePeriod *period,
  432.   PRStatus *statusOpt
  433. );
  434. /*
  435.  * nssPKIXPrivateKeyUsagePeriod_GetNotAfter
  436.  *
  437.  * -- fgmr comments --
  438.  *
  439.  * The error may be one of the following values:
  440.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  441.  *  NSS_ERROR_INVALID_ARENA
  442.  *  NSS_ERROR_NO_MEMORY
  443.  *  NSS_ERROR_HAS_NO_NOT_AFTER
  444.  *
  445.  * Return value:
  446.  *  NSSTime {fgmr!}
  447.  *  NULL upon failure
  448.  */
  449. NSS_EXTERN NSSTime *
  450. nssPKIXPrivateKeyUsagePeriod_GetNotAfter
  451. (
  452.   NSSPKIXPrivateKeyUsagePeriod *period,
  453.   NSSArena *arenaOpt
  454. );
  455. /*
  456.  * nssPKIXPrivateKeyUsagePeriod_SetNotAfter
  457.  *
  458.  * -- fgmr comments --
  459.  *
  460.  * The error may be one of the following values:
  461.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  462.  *  NSS_ERROR_INVALID_TIME
  463.  *  NSS_ERROR_NO_MEMORY
  464.  *
  465.  * Return value:
  466.  *  PR_SUCCESS upon success
  467.  *  PR_FAILURE upon failure
  468.  */
  469. NSS_EXTERN PRStatus
  470. nssPKIXPrivateKeyUsagePeriod_SetNotAfter
  471. (
  472.   NSSPKIXPrivateKeyUsagePeriod *period,
  473.   NSSTime *notAfter
  474. );
  475. /*
  476.  * nssPKIXPrivateKeyUsagePeriod_RemoveNotAfter
  477.  *
  478.  * -- fgmr comments --
  479.  *
  480.  * The error may be one of the following values:
  481.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  482.  *  NSS_ERROR_HAS_NO_NOT_AFTER
  483.  *
  484.  * Return value:
  485.  *  PR_SUCCESS upon success
  486.  *  PR_FAILURE upon failure
  487.  */
  488. NSS_EXTERN PRStatus
  489. nssPKIXPrivateKeyUsagePeriod_RemoveNotAfter
  490. (
  491.   NSSPKIXPrivateKeyUsagePeriod *period
  492. );
  493. /*
  494.  * nssPKIXPrivateKeyUsagePeriod_Equal
  495.  *
  496.  * -- fgmr comments --
  497.  *
  498.  * The error may be one of the following values:
  499.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  500.  *
  501.  * Return value:
  502.  *  PR_TRUE if the two objects have equal values
  503.  *  PR_FALSE otherwise
  504.  *  PR_FALSE upon error
  505.  */
  506. NSS_EXTERN PRBool
  507. nssPKIXPrivateKeyUsagePeriod_Equal
  508. (
  509.   NSSPKIXPrivateKeyUsagePeriod *period1,
  510.   NSSPKIXPrivateKeyUsagePeriod *period2,
  511.   PRStatus *statusOpt
  512. );
  513. /*
  514.  * nssPKIXPrivateKeyUsagePeriod_Duplicate
  515.  *
  516.  * -- fgmr comments --
  517.  *
  518.  * The error may be one of the following values:
  519.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  520.  *  NSS_ERROR_NO_MEMORY
  521.  *  NSS_ERROR_INVALID_ARENA
  522.  *
  523.  * Return value:
  524.  *  A valid pointer to an NSSPKIXPrivateKeyUsagePeriod upon success
  525.  *  NULL upon failure
  526.  */
  527. NSS_EXTERN NSSPKIXPrivateKeyUsagePeriod *
  528. nssPKIXPrivateKeyUsagePeriod_Duplicate
  529. (
  530.   NSSPKIXPrivateKeyUsagePeriod *period,
  531.   NSSArena *arenaOpt
  532. );
  533. #ifdef DEBUG
  534. /*
  535.  * nssPKIXPrivateKeyUsagePeriod_verifyPointer
  536.  *
  537.  * This method is only present in debug builds.
  538.  *
  539.  * If the specified pointer is a valid pointer to an NSSPKIXPrivateKeyUsagePeriod
  540.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  541.  * put an error on the error stack and return PR_FAILURE.
  542.  *
  543.  * The error may be one of the following values:
  544.  *  NSS_ERROR_INVALID_PKIX_PRIVATE_KEY_USAGE_PERIOD
  545.  *
  546.  * Return value:
  547.  *  PR_SUCCESS if the pointer is valid
  548.  *  PR_FAILURE if it isn't
  549.  */
  550. NSS_EXTERN PRStatus
  551. nssPKIXPrivateKeyUsagePeriod_verifyPointer
  552. (
  553.   NSSPKIXPrivateKeyUsagePeriod *p
  554. );
  555. #endif /* DEBUG */
  556. /*
  557.  * CertificatePolicies
  558.  *
  559.  * -- fgmr comments --
  560.  *
  561.  * From RFC 2459:
  562.  *
  563.  *  CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
  564.  *
  565.  * The private calls for the type:
  566.  *
  567.  *  nssPKIXCertificatePolicies_Decode
  568.  *  nssPKIXCertificatePolicies_Create
  569.  *  nssPKIXCertificatePolicies_Destroy
  570.  *  nssPKIXCertificatePolicies_Encode
  571.  *  nssPKIXCertificatePolicies_GetPolicyInformationCount
  572.  *  nssPKIXCertificatePolicies_GetPolicyInformations
  573.  *  nssPKIXCertificatePolicies_SetPolicyInformations
  574.  *  nssPKIXCertificatePolicies_GetPolicyInformation
  575.  *  nssPKIXCertificatePolicies_SetPolicyInformation
  576.  *  nssPKIXCertificatePolicies_InsertPolicyInformation
  577.  *  nssPKIXCertificatePolicies_AppendPolicyInformation
  578.  *  nssPKIXCertificatePolicies_RemovePolicyInformation
  579.  *  nssPKIXCertificatePolicies_FindPolicyInformation
  580.  *  nssPKIXCertificatePolicies_Equal
  581.  *  nssPKIXCertificatePolicies_Duplicate
  582.  * 
  583.  * In debug builds, the following call is available:
  584.  *
  585.  *  nssPKIXCertificatePolicies_verifyPointer
  586.  *
  587.  */
  588. /*
  589.  * nssPKIXCertificatePolicies_Decode
  590.  *
  591.  * -- fgmr comments --
  592.  *
  593.  * The error may be one of the following values:
  594.  *  NSS_ERROR_INVALID_BER
  595.  *  NSS_ERROR_NO_MEMORY
  596.  *  NSS_ERROR_INVALID_ARENA
  597.  *
  598.  * Return value:
  599.  *  A valid pointer to an NSSPKIXCertificatePolicies upon success
  600.  *  NULL upon failure
  601.  */
  602. NSS_EXTERN NSSPKIXCertificatePolicies *
  603. nssPKIXCertificatePolicies_Decode
  604. (
  605.   NSSArena *arenaOpt,
  606.   NSSBER *ber
  607. );
  608. /*
  609.  * nssPKIXCertificatePolicies_Create
  610.  *
  611.  * -- fgmr comments --
  612.  *
  613.  * The error may be one of the following values:
  614.  *  NSS_ERROR_NO_MEMORY
  615.  *  NSS_ERROR_INVALID_ARENA
  616.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  617.  *
  618.  * Return value:
  619.  *  A valid pointer to an NSSPKIXCertificatePolicies upon success
  620.  *  NULL upon failure
  621.  */
  622. NSS_EXTERN NSSPKIXCertificatePolicies *
  623. nssPKIXCertificatePolicies_Create
  624. (
  625.   NSSArena *arenaOpt,
  626.   NSSPKIXPolicyInformation *pi1,
  627.   ...
  628. );
  629. /*
  630.  * nssPKIXCertificatePolicies_Destroy
  631.  *
  632.  * -- fgmr comments --
  633.  *
  634.  * The error may be one of the following values:
  635.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  636.  *
  637.  * Return value:
  638.  *  PR_SUCCESS upon success
  639.  *  PR_FAILURE upon failure
  640.  */
  641. NSS_EXTERN PRStatus
  642. nssPKIXCertificatePolicies_Destroy
  643. (
  644.   NSSPKIXCertificatePolicies *cp
  645. );
  646. /*
  647.  * nssPKIXCertificatePolicies_Encode
  648.  *
  649.  * -- fgmr comments --
  650.  *
  651.  * The error may be one of the following values:
  652.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  653.  *  NSS_ERROR_INVALID_ARENA
  654.  *  NSS_ERROR_NO_MEMORY
  655.  *
  656.  * Return value:
  657.  *  A valid NSSBER pointer upon success
  658.  *  NULL upon failure
  659.  */
  660. NSS_EXTERN NSSBER *
  661. nssPKIXCertificatePolicies_Encode
  662. (
  663.   NSSPKIXCertificatePolicies *cp,
  664.   NSSASN1EncodingType encoding,
  665.   NSSBER *rvOpt,
  666.   NSSArena *arenaOpt
  667. );
  668. /*
  669.  * nssPKIXCertificatePolicies_GetPolicyInformationCount
  670.  *
  671.  * -- fgmr comments --
  672.  *
  673.  * The error may be one of the following values:
  674.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  675.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  676.  *
  677.  * Return value:
  678.  *  Nonnegative integer upon success
  679.  *  -1 upon failure.
  680.  */
  681. NSS_EXTERN PRInt32
  682. nssPKIXCertificatePolicies_GetPolicyInformationCount
  683. (
  684.   NSSPKIXCertificatePolicies *cp
  685. );
  686. /*
  687.  * nssPKIXCertificatePolicies_GetPolicyInformations
  688.  *
  689.  * We regret the function name.
  690.  *
  691.  * The error may be one of the following values:
  692.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  693.  *  NSS_ERROR_INVALID_ARENA
  694.  *  NSS_ERROR_NO_MEMORY
  695.  *  NSS_ERROR_ARRAY_TOO_SMALL
  696.  *
  697.  * Return value:
  698.  *  A valid pointer to an array of NSSPKIXPolicyInformation pointers
  699.  *      upon success
  700.  *  NULL upon failure
  701.  */
  702. NSS_EXTERN NSSPKIXPolicyInformation **
  703. nssPKIXCertificatePolicies_GetPolicyInformations
  704. (
  705.   NSSPKIXCertificatePolicies *cp,
  706.   NSSPKIXPolicyInformation *rvOpt[],
  707.   PRInt32 limit,
  708.   NSSArena *arenaOpt
  709. );
  710. /*
  711.  * nssPKIXCertificatePolicies_SetPolicyInformations
  712.  *
  713.  * -- fgmr comments --
  714.  *
  715.  * The error may be one of the following values:
  716.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  717.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  718.  *  NSS_ERROR_NO_MEMORY
  719.  *
  720.  * Return value:
  721.  *  PR_SUCCESS upon success
  722.  *  PR_FAILURE upon failure
  723.  */
  724. NSS_EXTERN PRStatus
  725. nssPKIXCertificatePolicies_SetPolicyInformations
  726. (
  727.   NSSPKIXCertificatePolicies *cp,
  728.   NSSPKIXPolicyInformation *pi[],
  729.   PRInt32 count
  730. );
  731. /*
  732.  * nssPKIXCertificatePolicies_GetPolicyInformation
  733.  *
  734.  * -- fgmr comments --
  735.  *
  736.  * The error may be one of the following values:
  737.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  738.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  739.  *  NSS_ERROR_NO_MEMORY
  740.  *  NSS_ERROR_INVALID_ARENA
  741.  *
  742.  * Return value:
  743.  *  A valid pointer to an NSSPKIXPolicyInformation upon success
  744.  *  NULL upon failure
  745.  */
  746. NSS_EXTERN NSSPKIXPolicyInformation *
  747. nssPKIXCertificatePolicies_GetPolicyInformation
  748. (
  749.   NSSPKIXCertificatePolicies *cp,
  750.   PRInt32 i,
  751.   NSSArena *arenaOpt
  752. );
  753. /*
  754.  * nssPKIXCertificatePolicies_SetPolicyInformation
  755.  *
  756.  * -- fgmr comments --
  757.  *
  758.  * The error may be one of the following values:
  759.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  760.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  761.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  762.  *  NSS_ERROR_NO_MEMORY
  763.  *
  764.  * Return value:
  765.  *  PR_SUCCESS upon success
  766.  *  PR_FAILURE upon failure
  767.  */
  768. NSS_EXTERN PRStatus
  769. nssPKIXCertificatePolicies_SetPolicyInformation
  770. (
  771.   NSSPKIXCertificatePolicies *cp,
  772.   PRInt32 i,
  773.   NSSPKIXPolicyInformation *pi
  774. );
  775. /*
  776.  * nssPKIXCertificatePolicies_InsertPolicyInformation
  777.  *
  778.  * -- fgmr comments --
  779.  *
  780.  * The error may be one of the following values:
  781.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  782.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  783.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  784.  *  NSS_ERROR_NO_MEMORY
  785.  *
  786.  * Return value:
  787.  *  PR_SUCCESS upon success
  788.  *  PR_FAILURE upon failure
  789.  */
  790. NSS_EXTERN PRStatus
  791. nssPKIXCertificatePolicies_InsertPolicyInformation
  792. (
  793.   NSSPKIXCertificatePolicies *cp,
  794.   PRInt32 i,
  795.   NSSPKIXPolicyInformation *pi
  796. );
  797. /*
  798.  * nssPKIXCertificatePolicies_AppendPolicyInformation
  799.  *
  800.  * -- fgmr comments --
  801.  *
  802.  * The error may be one of the following values:
  803.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  804.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  805.  *  NSS_ERROR_NO_MEMORY
  806.  *
  807.  * Return value:
  808.  *  PR_SUCCESS upon success
  809.  *  PR_FAILURE upon failure
  810.  */
  811. NSS_EXTERN PRStatus
  812. nssPKIXCertificatePolicies_AppendPolicyInformation
  813. (
  814.   NSSPKIXCertificatePolicies *cp,
  815.   NSSPKIXPolicyInformation *pi
  816. );
  817. /*
  818.  * nssPKIXCertificatePolicies_RemovePolicyInformation
  819.  *
  820.  * -- fgmr comments --
  821.  *
  822.  * The error may be one of the following values:
  823.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  824.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  825.  *
  826.  * Return value:
  827.  *  PR_SUCCESS upon success
  828.  *  PR_FAILURE upon failure
  829.  */
  830. NSS_EXTERN PRStatus
  831. nssPKIXCertificatePolicies_RemovePolicyInformation
  832. (
  833.   NSSPKIXCertificatePolicies *cp,
  834.   PRInt32 i
  835. );
  836. /*
  837.  * nssPKIXCertificatePolicies_FindPolicyInformation
  838.  *
  839.  * -- fgmr comments --
  840.  *
  841.  * The error may be one of the following values:
  842.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  843.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  844.  *
  845.  * Return value:
  846.  *  The nonnegative integer upon success
  847.  *  -1 upon failure
  848.  */
  849. NSS_EXTERN PRInt32
  850. nssPKIXCertificatePolicies_FindPolicyInformation
  851. (
  852.   NSSPKIXCertificatePolicies *cp,
  853.   NSSPKIXPolicyInformation *pi
  854. );
  855. /*
  856.  * nssPKIXCertificatePolicies_Equal
  857.  *
  858.  * -- fgmr comments --
  859.  *
  860.  * The error may be one of the following values:
  861.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  862.  *
  863.  * Return value:
  864.  *  PR_TRUE if the two objects have equal values
  865.  *  PR_FALSE otherwise
  866.  *  PR_FALSE upon error
  867.  */
  868. NSS_EXTERN PRBool
  869. nssPKIXCertificatePolicies_Equal
  870. (
  871.   NSSPKIXCertificatePolicies *cp1,
  872.   NSSPKIXCertificatePolicies *cp2,
  873.   PRStatus *statusOpt
  874. );
  875. /*
  876.  * nssPKIXCertificatePolicies_Duplicate
  877.  *
  878.  * -- fgmr comments --
  879.  *
  880.  * The error may be one of the following values:
  881.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  882.  *  NSS_ERROR_NO_MEMORY
  883.  *  NSS_ERROR_INVALID_ARENA
  884.  *
  885.  * Return value:
  886.  *  A valid pointer to an NSSPKIXCertificatePolicies upon success
  887.  *  NULL upon failure
  888.  */
  889. NSS_EXTERN NSSPKIXCertificatePolicies *
  890. nssPKIXCertificatePolicies_Duplicate
  891. (
  892.   NSSPKIXCertificatePolicies *cp,
  893.   NSSArena *arenaOpt
  894. );
  895. #ifdef DEBUG
  896. /*
  897.  * nssPKIXCertificatePolicies_verifyPointer
  898.  *
  899.  * This method is only present in debug builds.
  900.  *
  901.  * If the specified pointer is a valid pointer to an NSSPKIXCertificatePolicies
  902.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  903.  * put an error on the error stack and return PR_FAILURE.
  904.  *
  905.  * The error may be one of the following values:
  906.  *  NSS_ERROR_INVALID_PKIX_CERTIFICATE_POLICIES
  907.  *
  908.  * Return value:
  909.  *  PR_SUCCESS if the pointer is valid
  910.  *  PR_FAILURE if it isn't
  911.  */
  912. NSS_EXTERN PRStatus
  913. nssPKIXCertificatePolicies_verifyPointer
  914. (
  915.   NSSPKIXCertificatePolicies *p
  916. );
  917. #endif /* DEBUG */
  918. /*
  919.  * PolicyInformation
  920.  *
  921.  * -- fgmr comments --
  922.  *
  923.  * From RFC 2459:
  924.  *
  925.  *  PolicyInformation ::= SEQUENCE {
  926.  *       policyIdentifier   CertPolicyId,
  927.  *       policyQualifiers   SEQUENCE SIZE (1..MAX) OF
  928.  *               PolicyQualifierInfo OPTIONAL }
  929.  *
  930.  * The private calls for the type:
  931.  *
  932.  *  nssPKIXPolicyInformation_Decode
  933.  *  nssPKIXPolicyInformation_Create
  934.  *  nssPKIXPolicyInformation_Destroy
  935.  *  nssPKIXPolicyInformation_Encode
  936.  *  nssPKIXPolicyInformation_GetPolicyIdentifier
  937.  *  nssPKIXPolicyInformation_SetPolicyIdentifier
  938.  *  nssPKIXPolicyInformation_GetPolicyQualifierCount
  939.  *  nssPKIXPolicyInformation_GetPolicyQualifiers
  940.  *  nssPKIXPolicyInformation_SetPolicyQualifiers
  941.  *  nssPKIXPolicyInformation_GetPolicyQualifier
  942.  *  nssPKIXPolicyInformation_SetPolicyQualifier
  943.  *  nssPKIXPolicyInformation_InsertPolicyQualifier
  944.  *  nssPKIXPolicyInformation_AppendPolicyQualifier
  945.  *  nssPKIXPolicyInformation_RemovePolicyQualifier
  946.  *  nssPKIXPolicyInformation_Equal
  947.  *  nssPKIXPolicyInformation_Duplicate
  948.  *    { and accessors by specific policy qualifier ID }
  949.  * 
  950.  * In debug builds, the following call is available:
  951.  *
  952.  *  nssPKIXPolicyInformation_verifyPointer
  953.  *
  954.  */
  955. /*
  956.  * nssPKIXPolicyInformation_Decode
  957.  *
  958.  * -- fgmr comments --
  959.  *
  960.  * The error may be one of the following values:
  961.  *  NSS_ERROR_INVALID_BER
  962.  *  NSS_ERROR_NO_MEMORY
  963.  *  NSS_ERROR_INVALID_ARENA
  964.  *
  965.  * Return value:
  966.  *  A valid pointer to an NSSPKIXPolicyInformation upon success
  967.  *  NULL upon failure
  968.  */
  969. NSS_EXTERN NSSPKIXPolicyInformation *
  970. nssPKIXPolicyInformation_Decode
  971. (
  972.   NSSArena *arenaOpt,
  973.   NSSBER *ber
  974. );
  975. /*
  976.  * nssPKIXPolicyInformation_Create
  977.  *
  978.  * -- fgmr comments --
  979.  *
  980.  * The error may be one of the following values:
  981.  *  NSS_ERROR_NO_MEMORY
  982.  *  NSS_ERROR_INVALID_ARENA
  983.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  984.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  985.  *
  986.  * Return value:
  987.  *  A valid pointer to an NSSPKIXPolicyInformation upon success
  988.  *  NULL upon failure
  989.  */
  990. NSS_EXTERN NSSPKIXPolicyInformation *
  991. nssPKIXPolicyInformation_Create
  992. (
  993.   NSSArena *arenaOpt,
  994.   NSSPKIXCertPolicyId *id,
  995.   NSSPKIXPolicyQualifierInfo *pqi1,
  996.   ...
  997. );
  998. /*
  999.  * nssPKIXPolicyInformation_Destroy
  1000.  *
  1001.  * -- fgmr comments --
  1002.  *
  1003.  * The error may be one of the following values:
  1004.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1005.  *
  1006.  * Return value:
  1007.  *  PR_SUCCESS upon success
  1008.  *  PR_FAILURE upon failure
  1009.  */
  1010. NSS_EXTERN PRStatus
  1011. nssPKIXPolicyInformation_Destroy
  1012. (
  1013.   NSSPKIXPolicyInformation *pi
  1014. );
  1015. /*
  1016.  * nssPKIXPolicyInformation_Encode
  1017.  *
  1018.  * -- fgmr comments --
  1019.  *
  1020.  * The error may be one of the following values:
  1021.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1022.  *  NSS_ERROR_INVALID_ARENA
  1023.  *  NSS_ERROR_NO_MEMORY
  1024.  *
  1025.  * Return value:
  1026.  *  A valid NSSBER pointer upon success
  1027.  *  NULL upon failure
  1028.  */
  1029. NSS_EXTERN NSSBER *
  1030. nssPKIXPolicyInformation_Encode
  1031. (
  1032.   NSSPKIXPolicyInformation *pi,
  1033.   NSSASN1EncodingType encoding,
  1034.   NSSBER *rvOpt,
  1035.   NSSArena *arenaOpt
  1036. );
  1037. /*
  1038.  * nssPKIXPolicyInformation_GetPolicyIdentifier
  1039.  *
  1040.  * -- fgmr comments --
  1041.  *
  1042.  * The error may be one of the following values:
  1043.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1044.  *  NSS_ERROR_NO_MEMORY
  1045.  *
  1046.  * Return value:
  1047.  *  A valid OID upon success
  1048.  *  NULL upon failure
  1049.  */
  1050. NSS_EXTERN NSSPKIXCertPolicyId *
  1051. nssPKIXPolicyInformation_GetPolicyIdentifier
  1052. (
  1053.   NSSPKIXPolicyInformation *pi
  1054. );
  1055. /*
  1056.  * nssPKIXPolicyInformation_SetPolicyIdentifier
  1057.  *
  1058.  * -- fgmr comments --
  1059.  *
  1060.  * The error may be one of the following values:
  1061.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1062.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  1063.  *
  1064.  * Return value:
  1065.  *  PR_SUCCESS upon success
  1066.  *  PR_FAILURE upon failure
  1067.  */
  1068. NSS_EXTERN PRStatus
  1069. nssPKIXPolicyInformation_SetPolicyIdentifier
  1070. (
  1071.   NSSPKIXPolicyInformation *pi,
  1072.   NSSPKIXCertPolicyIdentifier *cpi
  1073. );
  1074. /*
  1075.  * nssPKIXPolicyInformation_GetPolicyQualifierCount
  1076.  *
  1077.  * -- fgmr comments --
  1078.  *
  1079.  * The error may be one of the following values:
  1080.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1081.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  1082.  *
  1083.  * Return value:
  1084.  *  Nonnegative integer upon success
  1085.  *  -1 upon failure.
  1086.  */
  1087. NSS_EXTERN PRInt32
  1088. nssPKIXPolicyInformation_GetPolicyQualifierCount
  1089. (
  1090.   NSSPKIXPolicyInformation *pi
  1091. );
  1092. /*
  1093.  * nssPKIXPolicyInformation_GetPolicyQualifiers
  1094.  *
  1095.  * -- fgmr comments --
  1096.  *
  1097.  * The error may be one of the following values:
  1098.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1099.  *  NSS_ERROR_INVALID_ARENA
  1100.  *  NSS_ERROR_NO_MEMORY
  1101.  *  NSS_ERROR_ARRAY_TOO_SMALL
  1102.  *
  1103.  * Return value:
  1104.  *  A valid pointer to an array of NSSPKIXPolicyQualifierInfo pointers
  1105.  *      upon success
  1106.  *  NULL upon failure
  1107.  */
  1108. NSS_EXTERN NSSPKIXPolicyQualifierInfo **
  1109. nssPKIXPolicyInformation_GetPolicyQualifiers
  1110. (
  1111.   NSSPKIXPolicyInformation *pi,
  1112.   NSSPKIXPolicyQualifierInfo *rvOpt[],
  1113.   PRInt32 limit,
  1114.   NSSArena *arenaOpt
  1115. );
  1116. /*
  1117.  * nssPKIXPolicyInformation_SetPolicyQualifiers
  1118.  *
  1119.  * -- fgmr comments --
  1120.  *
  1121.  * The error may be one of the following values:
  1122.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1123.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1124.  *  NSS_ERROR_NO_MEMORY
  1125.  *
  1126.  * Return value:
  1127.  *  PR_SUCCESS upon success
  1128.  *  PR_FAILURE upon failure
  1129.  */
  1130. NSS_EXTERN PRStatus
  1131. nssPKIXPolicyInformation_SetPolicyQualifiers
  1132. (
  1133.   NSSPKIXPolicyInformation *pi,
  1134.   NSSPKIXPolicyQualifierInfo *pqi[],
  1135.   PRInt32 count
  1136. );
  1137. /*
  1138.  * nssPKIXPolicyInformation_GetPolicyQualifier
  1139.  *
  1140.  * -- fgmr comments --
  1141.  *
  1142.  * The error may be one of the following values:
  1143.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1144.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  1145.  *  NSS_ERROR_NO_MEMORY
  1146.  *  NSS_ERROR_INVALID_ARENA
  1147.  *
  1148.  * Return value:
  1149.  *  A valid pointer to an NSSPKIXPolicyQualifierInfo upon success
  1150.  *  NULL upon failure
  1151.  */
  1152. NSS_EXTERN NSSPKIXPolicyQualifierInfo *
  1153. nssPKIXPolicyInformation_GetPolicyQualifier
  1154. (
  1155.   NSSPKIXPolicyInformation *pi,
  1156.   PRInt32 i,
  1157.   NSSArena *arenaOpt
  1158. );
  1159. /*
  1160.  * nssPKIXPolicyInformation_SetPolicyQualifier
  1161.  *
  1162.  * -- fgmr comments --
  1163.  *
  1164.  * The error may be one of the following values:
  1165.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1166.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1167.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  1168.  *  NSS_ERROR_NO_MEMORY
  1169.  *
  1170.  * Return value:
  1171.  *  PR_SUCCESS upon success
  1172.  *  PR_FAILURE upon failure
  1173.  */
  1174. NSS_EXTERN PRStatus
  1175. nssPKIXPolicyInformation_SetPolicyQualifier
  1176. (
  1177.   NSSPKIXPolicyInformation *pi,
  1178.   PRInt32 i,
  1179.   NSSPKIXPolicyQualifierInfo *pqi
  1180. );
  1181. /*
  1182.  * nssPKIXPolicyInformation_InsertPolicyQualifier
  1183.  *
  1184.  * -- fgmr comments --
  1185.  *
  1186.  * The error may be one of the following values:
  1187.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1188.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1189.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  1190.  *  NSS_ERROR_NO_MEMORY
  1191.  *
  1192.  * Return value:
  1193.  *  PR_SUCCESS upon success
  1194.  *  PR_FAILURE upon failure
  1195.  */
  1196. NSS_EXTERN PRStatus
  1197. nssPKIXPolicyInformation_InsertPolicyQualifier
  1198. (
  1199.   NSSPKIXPolicyInformation *pi,
  1200.   PRInt32 i,
  1201.   NSSPKIXPolicyQualifierInfo *pqi
  1202. );
  1203. /*
  1204.  * nssPKIXPolicyInformation_AppendPolicyQualifier
  1205.  *
  1206.  * -- fgmr comments --
  1207.  *
  1208.  * The error may be one of the following values:
  1209.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1210.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1211.  *  NSS_ERROR_NO_MEMORY
  1212.  *
  1213.  * Return value:
  1214.  *  PR_SUCCESS upon success
  1215.  *  PR_FAILURE upon failure
  1216.  */
  1217. NSS_EXTERN PRStatus
  1218. nssPKIXPolicyInformation_AppendPolicyQualifier
  1219. (
  1220.   NSSPKIXPolicyInformation *pi,
  1221.   PRInt32 i,
  1222.   NSSPKIXPolicyQualifierInfo *pqi
  1223. );
  1224. /*
  1225.  * nssPKIXPolicyInformation_RemovePolicyQualifier
  1226.  *
  1227.  * -- fgmr comments --
  1228.  *
  1229.  * The error may be one of the following values:
  1230.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1231.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  1232.  *
  1233.  * Return value:
  1234.  *  PR_SUCCESS upon success
  1235.  *  PR_FAILURE upon failure
  1236.  */
  1237. NSS_EXTERN PRStatus
  1238. nssPKIXPolicyInformation_RemovePolicyQualifier
  1239. (
  1240.   NSSPKIXPolicyInformation *pi,
  1241.   PRInt32 i
  1242. );
  1243. /*
  1244.  * nssPKIXPolicyInformation_Equal
  1245.  *
  1246.  * -- fgmr comments --
  1247.  *
  1248.  * The error may be one of the following values:
  1249.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1250.  *
  1251.  * Return value:
  1252.  *  PR_TRUE if the two objects have equal values
  1253.  *  PR_FALSE otherwise
  1254.  *  PR_FALSE upon error
  1255.  */
  1256. NSS_EXTERN PRBool
  1257. nssPKIXPolicyInformation_Equal
  1258. (
  1259.   NSSPKIXPolicyInformation *pi1,
  1260.   NSSPKIXPolicyInformation *pi2,
  1261.   PRStatus *statusOpt
  1262. );
  1263. /*
  1264.  * nssPKIXPolicyInformation_Duplicate
  1265.  *
  1266.  * -- fgmr comments --
  1267.  *
  1268.  * The error may be one of the following values:
  1269.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1270.  *  NSS_ERROR_NO_MEMORY
  1271.  *  NSS_ERROR_INVALID_ARENA
  1272.  *
  1273.  * Return value:
  1274.  *  A valid pointer to an NSSPKIXPolicyInformation upon success
  1275.  *  NULL upon failure
  1276.  */
  1277. NSS_EXTERN NSSPKIXPolicyInformation *
  1278. nssPKIXPolicyInformation_Duplicate
  1279. (
  1280.   NSSPKIXPolicyInformation *pi,
  1281.   NSSArena *arenaOpt
  1282. );
  1283. /*
  1284.  *   { and accessors by specific policy qualifier ID }
  1285.  *
  1286.  */
  1287. #ifdef DEBUG
  1288. /*
  1289.  * nssPKIXPolicyInformation_verifyPointer
  1290.  *
  1291.  * This method is only present in debug builds.
  1292.  *
  1293.  * If the specified pointer is a valid pointer to an NSSPKIXPolicyInformation
  1294.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  1295.  * put an error on the error stack and return PR_FAILURE.
  1296.  *
  1297.  * The error may be one of the following values:
  1298.  *  NSS_ERROR_INVALID_PKIX_POLICY_INFORMATION
  1299.  *
  1300.  * Return value:
  1301.  *  PR_SUCCESS if the pointer is valid
  1302.  *  PR_FAILURE if it isn't
  1303.  */
  1304. NSS_EXTERN PRStatus
  1305. nssPKIXPolicyInformation_verifyPointer
  1306. (
  1307.   NSSPKIXPolicyInformation *p
  1308. );
  1309. #endif /* DEBUG */
  1310. /*
  1311.  * PolicyQualifierInfo
  1312.  *
  1313.  * -- fgmr comments --
  1314.  *
  1315.  * From RFC 2459:
  1316.  *
  1317.  *  PolicyQualifierInfo ::= SEQUENCE {
  1318.  *         policyQualifierId  PolicyQualifierId,
  1319.  *         qualifier        ANY DEFINED BY policyQualifierId }
  1320.  *
  1321.  * The private calls for the type:
  1322.  *
  1323.  *  nssPKIXPolicyQualifierInfo_Decode
  1324.  *  nssPKIXPolicyQualifierInfo_Create
  1325.  *  nssPKIXPolicyQualifierInfo_Destroy
  1326.  *  nssPKIXPolicyQualifierInfo_Encode
  1327.  *  nssPKIXPolicyQualifierInfo_GetPolicyQualifierID
  1328.  *  nssPKIXPolicyQualifierInfo_SetPolicyQualifierID
  1329.  *  nssPKIXPolicyQualifierInfo_GetQualifier
  1330.  *  nssPKIXPolicyQualifierInfo_SetQualifier
  1331.  *  nssPKIXPolicyQualifierInfo_Equal
  1332.  *  nssPKIXPolicyQualifierInfo_Duplicate
  1333.  *    { and accessors by specific qualifier id/type }
  1334.  * 
  1335.  * In debug builds, the following call is available:
  1336.  *
  1337.  *  nssPKIXPolicyQualifierInfo_verifyPointer
  1338.  *
  1339.  */
  1340. /*
  1341.  * nssPKIXPolicyQualifierInfo_Decode
  1342.  *
  1343.  * -- fgmr comments --
  1344.  *
  1345.  * The error may be one of the following values:
  1346.  *  NSS_ERROR_INVALID_BER
  1347.  *  NSS_ERROR_NO_MEMORY
  1348.  *  NSS_ERROR_INVALID_ARENA
  1349.  *
  1350.  * Return value:
  1351.  *  A valid pointer to an NSSPKIXPolicyQualifierInfo upon success
  1352.  *  NULL upon failure
  1353.  */
  1354. NSS_EXTERN NSSPKIXPolicyQualifierInfo *
  1355. nssPKIXPolicyQualifierInfo_Decode
  1356. (
  1357.   NSSArena *arenaOpt,
  1358.   NSSBER *ber
  1359. );
  1360. /*
  1361.  * nssPKIXPolicyQualifierInfo_Create
  1362.  *
  1363.  * -- fgmr comments --
  1364.  *
  1365.  * The error may be one of the following values:
  1366.  *  NSS_ERROR_NO_MEMORY
  1367.  *  NSS_ERROR_INVALID_ARENA
  1368.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_ID
  1369.  *  NSS_ERROR_INVALID_ITEM
  1370.  *
  1371.  * Return value:
  1372.  *  A valid pointer to an NSSPKIXPolicyQualifierInfo upon success
  1373.  *  NULL upon failure
  1374.  */
  1375. NSS_EXTERN NSSPKIXPolicyQualifierInfo *
  1376. nssPKIXPolicyQualifierInfo_Create
  1377. (
  1378.   NSSArena *arenaOpt,
  1379.   NSSPKIXPolicyQualifierId *policyQualifierId,
  1380.   NSSItem *qualifier
  1381. );
  1382. /*
  1383.  * nssPKIXPolicyQualifierInfo_Destroy
  1384.  *
  1385.  * -- fgmr comments --
  1386.  *
  1387.  * The error may be one of the following values:
  1388.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1389.  *
  1390.  * Return value:
  1391.  *  PR_SUCCESS upon success
  1392.  *  PR_FAILURE upon failure
  1393.  */
  1394. NSS_EXTERN PRStatus
  1395. nssPKIXPolicyQualifierInfo_Destroy
  1396. (
  1397.   NSSPKIXPolicyQualifierInfo *pqi
  1398. );
  1399. /*
  1400.  * nssPKIXPolicyQualifierInfo_Encode
  1401.  *
  1402.  * -- fgmr comments --
  1403.  *
  1404.  * The error may be one of the following values:
  1405.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1406.  *  NSS_ERROR_INVALID_ARENA
  1407.  *  NSS_ERROR_NO_MEMORY
  1408.  *
  1409.  * Return value:
  1410.  *  A valid NSSBER pointer upon success
  1411.  *  NULL upon failure
  1412.  */
  1413. NSS_EXTERN NSSBER *
  1414. nssPKIXPolicyQualifierInfo_Encode
  1415. (
  1416.   NSSPKIXPolicyQualifierInfo *pqi,
  1417.   NSSASN1EncodingType encoding,
  1418.   NSSBER *rvOpt,
  1419.   NSSArena *arenaOpt
  1420. );
  1421. /*
  1422.  * nssPKIXPolicyQualifierInfo_GetPolicyQualifierId
  1423.  *
  1424.  * -- fgmr comments --
  1425.  *
  1426.  * The error may be one of the following values:
  1427.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1428.  *  NSS_ERROR_NO_MEMORY
  1429.  *
  1430.  * Return value:
  1431.  *  A valid pointer to an NSSPKIXPolicyQualifierId (an NSSOID) upon success
  1432.  *  NULL upon failure
  1433.  */
  1434. NSS_EXTERN NSSPKIXPolicyQualifierId *
  1435. nssPKIXPolicyQualifierInfo_GetPolicyQualifierId
  1436. (
  1437.   NSSPKIXPolicyQualifierInfo *pqi,
  1438.   NSSArena *arenaOpt
  1439. );
  1440. /*
  1441.  * nssPKIXPolicyQualifierInfo_SetPolicyQualifierId
  1442.  *
  1443.  * -- fgmr comments --
  1444.  *
  1445.  * The error may be one of the following values:
  1446.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1447.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_ID
  1448.  *  NSS_ERROR_NO_MEMORY
  1449.  *
  1450.  * Return value:
  1451.  *  PR_SUCCESS upon success
  1452.  *  PR_FAILURE upon failure
  1453.  */
  1454. NSS_EXTERN PRStatus
  1455. nssPKIXPolicyQualifierInfo_SetPolicyQualifierId
  1456. (
  1457.   NSSPKIXPolicyQualifierInfo *pqi,
  1458.   NSSPKIXPolicyQualifierId *pqid
  1459. );
  1460. /*
  1461.  * nssPKIXPolicyQualifierInfo_GetQualifier
  1462.  *
  1463.  * -- fgmr comments --
  1464.  *
  1465.  * The error may be one of the following values:
  1466.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1467.  *  NSS_ERROR_INVALID_ARENA
  1468.  *  NSS_ERROR_NO_MEMORY
  1469.  *
  1470.  * Return value:
  1471.  *  A valid pointer to an NSSItem upon success
  1472.  *  NULL upon failure
  1473.  */
  1474. NSS_EXTERN NSSItem *
  1475. nssPKIXPolicyQualifierInfo_GetQualifier
  1476. (
  1477.   NSSPKIXPolicyQualifierInfo *pqi,
  1478.   NSSItem *rvOpt,
  1479.   NSSArena *arenaOpt
  1480. );
  1481. /*
  1482.  * nssPKIXPolicyQualifierInfo_SetQualifier
  1483.  *
  1484.  * -- fgmr comments --
  1485.  *
  1486.  * The error may be one of the following values:
  1487.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1488.  *  NSS_ERROR_NO_MEMORY
  1489.  *  NSS_ERROR_INVALID_ITEM
  1490.  *
  1491.  * Return value:
  1492.  *  PR_SUCCESS upon success
  1493.  *  PR_FAILURE upon failure
  1494.  */
  1495. NSS_EXTERN PRStatus
  1496. nssPKIXPolicyQualifierInfo_SetQualifier
  1497. (
  1498.   NSSPKIXPolicyQualifierInfo *pqi,
  1499.   NSSItem *qualifier
  1500. );
  1501. /*
  1502.  * nssPKIXPolicyQualifierInfo_Equal
  1503.  *
  1504.  * -- fgmr comments --
  1505.  *
  1506.  * The error may be one of the following values:
  1507.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1508.  *
  1509.  * Return value:
  1510.  *  PR_TRUE if the two objects have equal values
  1511.  *  PR_FALSE otherwise
  1512.  *  PR_FALSE upon error
  1513.  */
  1514. NSS_EXTERN PRBool
  1515. nssPKIXPolicyQualifierInfo_Equal
  1516. (
  1517.   NSSPKIXPolicyQualifierInfo *pqi1,
  1518.   NSSPKIXPolicyQualifierInfo *pqi2,
  1519.   PRStatus *statusOpt
  1520. );
  1521. /*
  1522.  * nssPKIXPolicyQualifierInfo_Duplicate
  1523.  *
  1524.  * -- fgmr comments --
  1525.  *
  1526.  * The error may be one of the following values:
  1527.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1528.  *  NSS_ERROR_NO_MEMORY
  1529.  *  NSS_ERROR_INVALID_ARENA
  1530.  *
  1531.  * Return value:
  1532.  *  A valid pointer to an NSSPKIXPolicyQualifierInfo upon success
  1533.  *  NULL upon failure
  1534.  */
  1535. NSS_EXTERN NSSPKIXPolicyQualifierInfo *
  1536. nssPKIXPolicyQualifierInfo_Duplicate
  1537. (
  1538.   NSSPKIXPolicyQualifierInfo *pqi,
  1539.   NSSArena *arenaOpt
  1540. );
  1541. /*
  1542.  *   { and accessors by specific qualifier id/type }
  1543.  *
  1544.  */
  1545. #ifdef DEBUG
  1546. /*
  1547.  * nssPKIXPolicyQualifierInfo_verifyPointer
  1548.  *
  1549.  * This method is only present in debug builds.
  1550.  *
  1551.  * If the specified pointer is a valid pointer to an NSSPKIXPolicyQualifierInfo
  1552.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  1553.  * put an error on the error stack and return PR_FAILURE.
  1554.  *
  1555.  * The error may be one of the following values:
  1556.  *  NSS_ERROR_INVALID_PKIX_POLICY_QUALIFIER_INFO
  1557.  *
  1558.  * Return value:
  1559.  *  PR_SUCCESS if the pointer is valid
  1560.  *  PR_FAILURE if it isn't
  1561.  */
  1562. NSS_EXTERN PRStatus
  1563. nssPKIXPolicyQualifierInfo_verifyPointer
  1564. (
  1565.   NSSPKIXPolicyQualifierInfo *p
  1566. );
  1567. #endif /* DEBUG */
  1568. /*
  1569.  * CPSuri
  1570.  *
  1571.  * -- fgmr comments --
  1572.  *
  1573.  * From RFC 2459:
  1574.  *
  1575.  *  CPSuri ::= IA5String
  1576.  *
  1577.  * The private calls for this type:
  1578.  *
  1579.  *  nssPKIXCPSuri_Decode
  1580.  *  nssPKIXCPSuri_CreateFromUTF8
  1581.  *  nssPKIXCPSuri_Encode
  1582.  *
  1583.  */
  1584. /*
  1585.  * nssPKIXCPSuri_Decode
  1586.  *
  1587.  * -- fgmr comments --
  1588.  *
  1589.  * The error may be one of the following values:
  1590.  *  NSS_ERROR_INVALID_BER
  1591.  *  NSS_ERROR_NO_MEMORY
  1592.  *  NSS_ERROR_INVALID_ARENA
  1593.  * 
  1594.  * Return value:
  1595.  *  A valid pointer to an NSSPKIXCPSuri upon success
  1596.  *  NULL upon failure
  1597.  */
  1598. NSS_EXTERN NSSPKIXCPSuri *
  1599. nssPKIXCPSuri_Decode
  1600. (
  1601.   NSSArena *arenaOpt,
  1602.   NSSBER *ber
  1603. );
  1604. /*
  1605.  * nssPKIXCPSuri_CreateFromUTF8
  1606.  *
  1607.  * { basically just enforces the length and charset limit }
  1608.  *
  1609.  * The error may be one of the following values:
  1610.  *  NSS_ERROR_INVALID_BER
  1611.  *  NSS_ERROR_NO_MEMORY
  1612.  *  NSS_ERROR_INVALID_ARENA
  1613.  * 
  1614.  * Return value:
  1615.  *  A valid pointer to an NSSPKIXCPSuri upon success
  1616.  *  NULL upon failure
  1617.  */
  1618. NSS_EXTERN NSSPKIXCPSuri *
  1619. nssPKIXCPSuri_CreateFromUTF8
  1620. (
  1621.   NSSArena *arenaOpt,
  1622.   NSSUTF8 *utf8
  1623. );
  1624. /*
  1625.  * nssPKIXCPSuri_Encode
  1626.  *
  1627.  *
  1628.  *
  1629.  * The error may be one of the following values:
  1630.  *  NSS_ERROR_INVALID_PKIX_CPS_URI
  1631.  *  NSS_ERROR_NO_MEMORY
  1632.  *
  1633.  * Return value:
  1634.  *  A valid NSSBER pointer upon success
  1635.  *  NULL upon failure
  1636.  */
  1637. NSS_EXTERN NSSBER *
  1638. nssPKIXCPSuri_Encode
  1639. (
  1640.   NSSPKIXCPSuri *name,
  1641.   NSSASN1EncodingType encoding,
  1642.   NSSBER *rvOpt,
  1643.   NSSArena *arenaOpt
  1644. );
  1645. /*
  1646.  * UserNotice
  1647.  *
  1648.  * -- fgmr comments --
  1649.  *
  1650.  * From RFC 2459:
  1651.  *
  1652.  *  UserNotice ::= SEQUENCE {
  1653.  *       noticeRef        NoticeReference OPTIONAL,
  1654.  *       explicitText     DisplayText OPTIONAL}
  1655.  *
  1656.  * The private calls for this type:
  1657.  *
  1658.  *  nssPKIXUserNotice_Decode
  1659.  *  nssPKIXUserNotice_Create
  1660.  *  nssPKIXUserNotice_Destroy
  1661.  *  nssPKIXUserNotice_Encode
  1662.  *  nssPKIXUserNotice_HasNoticeRef
  1663.  *  nssPKIXUserNotice_GetNoticeRef
  1664.  *  nssPKIXUserNotice_SetNoticeRef
  1665.  *  nssPKIXUserNotice_RemoveNoticeRef
  1666.  *  nssPKIXUserNotice_HasExplicitText
  1667.  *  nssPKIXUserNotice_GetExplicitText
  1668.  *  nssPKIXUserNotice_SetExplicitText
  1669.  *  nssPKIXUserNotice_RemoveExplicitText
  1670.  *  nssPKIXUserNotice_Equal
  1671.  *  nssPKIXUserNotice_Duplicate
  1672.  * 
  1673.  * In debug builds, the following call is available:
  1674.  *
  1675.  *  nssPKIXUserNotice_verifyPointer
  1676.  *
  1677.  */
  1678. /*
  1679.  * nssPKIXUserNotice_Decode
  1680.  *
  1681.  * -- fgmr comments --
  1682.  *
  1683.  * The error may be one of the following values:
  1684.  *  NSS_ERROR_INVALID_BER
  1685.  *  NSS_ERROR_NO_MEMORY
  1686.  *  NSS_ERROR_INVALID_ARENA
  1687.  * 
  1688.  * Return value:
  1689.  *  A valid pointer to an NSSPKIXUserNotice upon success
  1690.  *  NULL upon failure
  1691.  */
  1692. NSS_EXTERN NSSPKIXUserNotice *
  1693. nssPKIXUserNotice_Decode
  1694. (
  1695.   NSSArena *arenaOpt,
  1696.   NSSBER *ber
  1697. );
  1698. /*
  1699.  * nssPKIXUserNotice_Create
  1700.  *
  1701.  * -- fgmr comments --
  1702.  *
  1703.  * The error may be one of the following values:
  1704.  *  NSS_ERROR_NO_MEMORY
  1705.  *  NSS_ERROR_INVALID_ARENA
  1706.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  1707.  *  NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT
  1708.  * 
  1709.  * Return value:
  1710.  *  A valid pointer to an NSSPKIXUserNotice upon success
  1711.  *  NULL upon failure
  1712.  */
  1713. NSS_EXTERN NSSPKIXUserNotice *
  1714. nssPKIXUserNotice_Create
  1715. (
  1716.   NSSArena *arenaOpt,
  1717.   NSSPKIXNoticeReference *noticeRef,
  1718.   NSSPKIXDisplayText *explicitText
  1719. );
  1720. /*
  1721.  * nssPKIXUserNotice_Destroy
  1722.  *
  1723.  * -- fgmr comments --
  1724.  *
  1725.  * The error may be one of the following values:
  1726.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1727.  * 
  1728.  * Return value:
  1729.  *  PR_SUCCESS upon success
  1730.  *  PR_FAILURE upon failure
  1731.  */
  1732. NSS_EXTERN PRStatus
  1733. nssPKIXUserNotice_Destroy
  1734. (
  1735.   NSSPKIXUserNotice *userNotice
  1736. );
  1737. /*
  1738.  * nssPKIXUserNotice_Encode
  1739.  *
  1740.  * -- fgmr comments --
  1741.  *
  1742.  * The error may be one of the following values:
  1743.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1744.  *  NSS_ERROR_INVALID_ARENA
  1745.  *  NSS_ERROR_NO_MEMORY
  1746.  * 
  1747.  * Return value:
  1748.  *  A valid NSSBER pointer upon success
  1749.  *  NULL upon failure
  1750.  */
  1751. NSS_EXTERN NSSBER *
  1752. nssPKIXUserNotice_Encode
  1753. (
  1754.   NSSPKIXUserNotice *userNotice,
  1755.   NSSASN1EncodingType encoding,
  1756.   NSSBER *rvOpt,
  1757.   NSSArena *arenaOpt
  1758. );
  1759. /*
  1760.  * nssPKIXUserNotice_HasNoticeRef
  1761.  *
  1762.  * -- fgmr comments --
  1763.  *
  1764.  * The error may be one of the following values:
  1765.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1766.  * 
  1767.  * Return value:
  1768.  *  PR_TRUE if it has one
  1769.  *  PR_FALSE if it doesn't
  1770.  *  PR_FALSE upon failure
  1771.  */
  1772. NSS_EXTERN PRBool
  1773. nssPKIXUserNotice_HasNoticeRef
  1774. (
  1775.   NSSPKIXUserNotice *userNotice,
  1776.   PRStatus *statusOpt
  1777. );
  1778. /*
  1779.  * nssPKIXUserNotice_GetNoticeRef
  1780.  *
  1781.  * -- fgmr comments --
  1782.  *
  1783.  * The error may be one of the following values:
  1784.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1785.  *  NSS_ERROR_INVALID_ARENA
  1786.  *  NSS_ERROR_NO_MEMORY
  1787.  *  NSS_ERROR_HAS_NO_NOTICE_REF
  1788.  * 
  1789.  * Return value:
  1790.  *  A valid pointer to an NSSPKIXNoticeReference upon success
  1791.  *  NULL upon failure
  1792.  */
  1793. NSS_EXTERN NSSPKIXNoticeReference *
  1794. nssPKIXUserNotice_GetNoticeRef
  1795. (
  1796.   NSSPKIXUserNotice *userNotice,
  1797.   NSSArena *arenaOpt
  1798. );
  1799. /*
  1800.  * nssPKIXUserNotice_SetNoticeRef
  1801.  *
  1802.  * -- fgmr comments --
  1803.  *
  1804.  * The error may be one of the following values:
  1805.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1806.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  1807.  *  NSS_ERROR_NO_MEMORY
  1808.  * 
  1809.  * Return value:
  1810.  *  PR_SUCCESS upon success
  1811.  *  PR_FAILURE upon failure
  1812.  */
  1813. NSS_EXTERN PRStatus
  1814. nssPKIXUserNotice_SetNoticeRef
  1815. (
  1816.   NSSPKIXUserNotice *userNotice,
  1817.   NSSPKIXNoticeReference *noticeRef
  1818. );
  1819. /*
  1820.  * nssPKIXUserNotice_RemoveNoticeRef
  1821.  *
  1822.  * -- fgmr comments --
  1823.  *
  1824.  * The error may be one of the following values:
  1825.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1826.  *  NSS_ERROR_HAS_NO_NOTICE_REF
  1827.  * 
  1828.  * Return value:
  1829.  *  PR_SUCCESS upon success
  1830.  *  PR_FAILURE upon failure
  1831.  */
  1832. NSS_EXTERN PRStatus
  1833. nssPKIXUserNotice_RemoveNoticeRef
  1834. (
  1835.   NSSPKIXUserNotice *userNotice
  1836. );
  1837. /*
  1838.  * nssPKIXUserNotice_HasExplicitText
  1839.  *
  1840.  * -- fgmr comments --
  1841.  *
  1842.  * The error may be one of the following values:
  1843.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1844.  * 
  1845.  * Return value:
  1846.  *  PR_TRUE if it has some
  1847.  *  PR_FALSE if it doesn't
  1848.  *  PR_FALSE upon failure
  1849.  */
  1850. NSS_EXTERN PRBool
  1851. nssPKIXUserNotice_HasExplicitText
  1852. (
  1853.   NSSPKIXUserNotice *userNotice,
  1854.   PRStatus *statusOpt
  1855. );
  1856. /*
  1857.  * nssPKIXUserNotice_GetExplicitText
  1858.  *
  1859.  * -- fgmr comments --
  1860.  *
  1861.  * The error may be one of the following values:
  1862.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1863.  *  NSS_ERROR_INVALID_ARENA
  1864.  *  NSS_ERROR_NO_MEMORY
  1865.  *  NSS_ERROR_HAS_NO_EXPLICIT_TEXT
  1866.  * 
  1867.  * Return value:
  1868.  *  A valid pointer to an NSSPKIXDisplayText string upon success
  1869.  *  NULL upon failure
  1870.  */
  1871. NSS_EXTERN NSSPKIXDisplayText *
  1872. nssPKIXUserNotice_GetExplicitText
  1873. (
  1874.   NSSPKIXUserNotice *userNotice,
  1875.   NSSArena *arenaOpt
  1876. );
  1877. /*
  1878.  * nssPKIXUserNotice_SetExplicitText
  1879.  *
  1880.  * -- fgmr comments --
  1881.  *
  1882.  * The error may be one of the following values:
  1883.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1884.  *  NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT
  1885.  *  NSS_ERROR_NO_MEMORY
  1886.  * 
  1887.  * Return value:
  1888.  *  PR_SUCCESS upon success
  1889.  *  PR_FAILURE upon failure
  1890.  */
  1891. NSS_EXTERN PRStatus
  1892. nssPKIXUserNotice_SetExplicitText
  1893. (
  1894.   NSSPKIXUserNotice *userNotice,
  1895.   NSSPKIXDisplayText *explicitText
  1896. );
  1897. /*
  1898.  * nssPKIXUserNotice_RemoveExplicitText
  1899.  *
  1900.  * -- fgmr comments --
  1901.  *
  1902.  * The error may be one of the following values:
  1903.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1904.  *  NSS_ERROR_HAS_NO_EXPLICIT_TEXT
  1905.  * 
  1906.  * Return value:
  1907.  *  PR_SUCCESS upon success
  1908.  *  PR_FAILURE upon failure
  1909.  */
  1910. NSS_EXTERN PRStatus
  1911. nssPKIXUserNotice_RemoveExplicitText
  1912. (
  1913.   NSSPKIXUserNotice *userNotice
  1914. );
  1915. /*
  1916.  * nssPKIXUserNotice_Equal
  1917.  *
  1918.  * -- fgmr comments --
  1919.  *
  1920.  * The error may be one of the following values:
  1921.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1922.  * 
  1923.  * Return value:
  1924.  *  PR_TRUE if the two objects have equal values
  1925.  *  PR_FALSE otherwise
  1926.  *  PR_FALSE upon error
  1927.  */
  1928. NSS_EXTERN PRBool
  1929. nssPKIXUserNotice_Equal
  1930. (
  1931.   NSSPKIXUserNotice *userNotice1,
  1932.   NSSPKIXUserNotice *userNotice2,
  1933.   PRStatus *statusOpt
  1934. );
  1935. /*
  1936.  * nssPKIXUserNotice_Duplicate
  1937.  *
  1938.  * -- fgmr comments --
  1939.  *
  1940.  * The error may be one of the following values:
  1941.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1942.  *  NSS_ERROR_NO_MEMORY
  1943.  *  NSS_ERROR_INVALID_ARENA
  1944.  * 
  1945.  * Return value:
  1946.  *  A valid pointer to an NSSPKIXUserNotice upon success
  1947.  *  NULL upon failure
  1948.  */
  1949. NSS_EXTERN NSSPKIXUserNotice *
  1950. nssPKIXUserNotice_Duplicate
  1951. (
  1952.   NSSPKIXUserNotice *userNotice,
  1953.   NSSArena *arenaOpt
  1954. );
  1955. #ifdef DEBUG
  1956. /*
  1957.  * nssPKIXUserNotice_verifyPointer
  1958.  *
  1959.  * This method is only present in debug builds.
  1960.  *
  1961.  * If the specified pointer is a valid pointer to an NSSPKIXUserNotice
  1962.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  1963.  * put an error on the error stack and return PR_FAILURE.
  1964.  *
  1965.  * The error may be one of the following values:
  1966.  *  NSS_ERROR_INVALID_PKIX_USER_NOTICE
  1967.  *
  1968.  * Return value:
  1969.  *  PR_SUCCESS if the pointer is valid
  1970.  *  PR_FAILURE if it isn't
  1971.  */
  1972. NSS_EXTERN PRStatus
  1973. nssPKIXUserNotice_verifyPointer
  1974. (
  1975.   NSSPKIXUserNotice *p
  1976. );
  1977. #endif /* DEBUG */
  1978. /*
  1979.  * NoticeReference
  1980.  *
  1981.  * -- fgmr comments --
  1982.  *
  1983.  * From RFC 2459:
  1984.  *
  1985.  *  NoticeReference ::= SEQUENCE {
  1986.  *       organization     DisplayText,
  1987.  *       noticeNumbers    SEQUENCE OF INTEGER }
  1988.  *
  1989.  * The private calls for this type:
  1990.  *
  1991.  *  nssPKIXNoticeReference_Decode
  1992.  *  nssPKIXNoticeReference_Create
  1993.  *  nssPKIXNoticeReference_Destroy
  1994.  *  nssPKIXNoticeReference_Encode
  1995.  *  nssPKIXNoticeReference_GetOrganization
  1996.  *  nssPKIXNoticeReference_SetOrganization
  1997.  *  nssPKIXNoticeReference_GetNoticeNumberCount
  1998.  *  nssPKIXNoticeReference_GetNoticeNumbers
  1999.  *  nssPKIXNoticeReference_SetNoticeNumbers
  2000.  *  nssPKIXNoticeReference_GetNoticeNumber
  2001.  *  nssPKIXNoticeReference_SetNoticeNumber
  2002.  *  nssPKIXNoticeReference_InsertNoticeNumber
  2003.  *  nssPKIXNoticeReference_AppendNoticeNumber
  2004.  *  nssPKIXNoticeReference_RemoveNoticeNumber
  2005.  *    { maybe number-exists-p gettor? }
  2006.  *  nssPKIXNoticeReference_Equal
  2007.  *  nssPKIXNoticeReference_Duplicate
  2008.  * 
  2009.  * In debug builds, the following call is available:
  2010.  *
  2011.  *  nssPKIXNoticeReference_verifyPointer
  2012.  *
  2013.  */
  2014. /*
  2015.  * nssPKIXNoticeReference_Decode
  2016.  *
  2017.  * -- fgmr comments --
  2018.  *
  2019.  * The error may be one of the following values:
  2020.  *  NSS_ERROR_INVALID_BER
  2021.  *  NSS_ERROR_NO_MEMORY
  2022.  *  NSS_ERROR_INVALID_ARENA
  2023.  * 
  2024.  * Return value:
  2025.  *  A valid pointer to an NSSPKIXNoticeReference upon success
  2026.  *  NULL upon failure
  2027.  */
  2028. NSS_EXTERN NSSPKIXNoticeReference *
  2029. nssPKIXNoticeReference_Decode
  2030. (
  2031.   NSSArena *arenaOpt,
  2032.   NSSBER *ber
  2033. );
  2034. /*
  2035.  * nssPKIXNoticeReference_Create
  2036.  *
  2037.  * -- fgmr comments --
  2038.  *
  2039.  * The error may be one of the following values:
  2040.  *  NSS_ERROR_NO_MEMORY
  2041.  *  NSS_ERROR_INVALID_ARENA
  2042.  *  NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT
  2043.  * 
  2044.  * Return value:
  2045.  *  A valid pointer to an NSSPKIXNoticeReference upon success
  2046.  *  NULL upon failure
  2047.  */
  2048. NSS_EXTERN NSSPKIXNoticeReference *
  2049. nssPKIXNoticeReference_Create
  2050. (
  2051.   NSSArena *arenaOpt,
  2052.   NSSPKIXDisplayText *organization,
  2053.   PRUint32 noticeCount,
  2054.   PRInt32 noticeNumber1,
  2055.   ...
  2056. );
  2057. /*
  2058.  * { fgmr -- or should the call that takes PRInt32 be _CreateFromValues,
  2059.  *  and the _Create call take NSSBER integers? }
  2060.  */
  2061. /*
  2062.  * nssPKIXNoticeReference_Destroy
  2063.  *
  2064.  * -- fgmr comments --
  2065.  *
  2066.  * The error may be one of the following values:
  2067.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2068.  * 
  2069.  * Return value:
  2070.  *  PR_SUCCESS upon success
  2071.  *  PR_FAILURE upon failure
  2072.  */
  2073. NSS_EXTERN PRStatus
  2074. nssPKIXNoticeReference_Destroy
  2075. (
  2076.   NSSPKIXNoticeReference *nr
  2077. );
  2078. /*
  2079.  * nssPKIXNoticeReference_Encode
  2080.  *
  2081.  * -- fgmr comments --
  2082.  *
  2083.  * The error may be one of the following values:
  2084.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2085.  *  NSS_ERROR_INVALID_ARENA
  2086.  *  NSS_ERROR_NO_MEMORY
  2087.  * 
  2088.  * Return value:
  2089.  *  A valid NSSBER pointer upon success
  2090.  *  NULL upon failure
  2091.  */
  2092. NSS_EXTERN NSSBER *
  2093. nssPKIXNoticeReference_Encode
  2094. (
  2095.   NSSPKIXNoticeReference *nr,
  2096.   NSSASN1EncodingType encoding,
  2097.   NSSBER *rvOpt,
  2098.   NSSArena *arenaOpt
  2099. );
  2100. /*
  2101.  * nssPKIXNoticeReference_GetOrganization
  2102.  *
  2103.  * -- fgmr comments --
  2104.  *
  2105.  * The error may be one of the following values:
  2106.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2107.  *  NSS_ERROR_INVALID_ARENA
  2108.  *  NSS_ERROR_NO_MEMORY
  2109.  * 
  2110.  * Return value:
  2111.  *  A valid pointer to an NSSPKIXDisplayText string upon success
  2112.  *  NULL upon failure
  2113.  */
  2114. NSS_EXTERN NSSPKIXDisplayText *
  2115. nssPKIXNoticeReference_GetOrganization
  2116. (
  2117.   NSSPKIXNoticeReference *nr,
  2118.   NSSArena *arenaOpt
  2119. );
  2120. /*
  2121.  * nssPKIXNoticeReference_SetOrganization
  2122.  *
  2123.  * -- fgmr comments --
  2124.  *
  2125.  * The error may be one of the following values:
  2126.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2127.  *  NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT
  2128.  *  NSS_ERROR_NO_MEMORY
  2129.  * 
  2130.  * Return value:
  2131.  *  PR_SUCCESS upon success
  2132.  *  PR_FAILURE upon failure
  2133.  */
  2134. NSS_EXTERN PRStatus
  2135. nssPKIXNoticeReference_SetOrganization
  2136. (
  2137.   NSSPKIXNoticeReference *nr,
  2138.   NSSPKIXDisplayText *organization
  2139. );
  2140. /*
  2141.  * nssPKIXNoticeReference_GetNoticeNumberCount
  2142.  *
  2143.  * -- fgmr comments --
  2144.  *
  2145.  * The error may be one of the following values:
  2146.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2147.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2148.  * 
  2149.  * Return value:
  2150.  *  Nonnegative integer upon success
  2151.  *  -1 upon failure.
  2152.  */
  2153. NSS_EXTERN PRInt32
  2154. nssPKIXNoticeReference_GetNoticeNumberCount
  2155. (
  2156.   NSSPKIXNoticeReference *nr
  2157. );
  2158. /*
  2159.  * nssPKIXNoticeReference_GetNoticeNumbers
  2160.  *
  2161.  * -- fgmr comments --
  2162.  *
  2163.  * The error may be one of the following values:
  2164.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2165.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2166.  *  NSS_ERROR_INVALID_ARENA
  2167.  *  NSS_ERROR_NO_MEMORY
  2168.  *  NSS_ERROR_ARRAY_TOO_SMALL
  2169.  * 
  2170.  * Return value:
  2171.  *  A valid pointer to an array of PRInt32 values upon success
  2172.  *  NULL upon failure
  2173.  */
  2174. NSS_EXTERN PRInt32 *
  2175. nssPKIXNoticeReference_GetNoticeNumbers
  2176. (
  2177.   NSSPKIXNoticeReference *nr,
  2178.   PRInt32 rvOpt[],
  2179.   PRInt32 limit,
  2180.   NSSArena *arenaOpt
  2181. );
  2182. /*
  2183.  * nssPKIXNoticeReference_SetNoticeNumbers
  2184.  *
  2185.  * -- fgmr comments --
  2186.  *
  2187.  * The error may be one of the following values:
  2188.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2189.  *  NSS_ERROR_NO_MEMORY
  2190.  * 
  2191.  * Return value:
  2192.  *  PR_SUCCESS upon success
  2193.  *  PR_FAILURE upon failure
  2194.  */
  2195. NSS_EXTERN PRStatus
  2196. nssPKIXNoticeReference_SetNoticeNumbers
  2197. (
  2198.   NSSPKIXNoticeReference *nr,
  2199.   PRInt32 noticeNumbers[],
  2200.   PRInt32 count
  2201. );
  2202. /*
  2203.  * nssPKIXNoticeReference_GetNoticeNumber
  2204.  *
  2205.  * -- fgmr comments --
  2206.  * Because there is no natural "invalid" notice number value, we must
  2207.  * pass the number by reference, and return an explicit status value.
  2208.  *
  2209.  * The error may be one of the following values:
  2210.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2211.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2212.  *  NSS_ERROR_INVALID_POINTER
  2213.  * 
  2214.  * Return value:
  2215.  *  PR_SUCCESS upon success
  2216.  *  PR_FAILURE upon failure
  2217.  */
  2218. NSS_EXTERN PRStatus
  2219. nssPKIXNoticeReference_GetNoticeNumber
  2220. (
  2221.   NSSPKIXNoticeReference *nr,
  2222.   PRInt32 i,
  2223.   PRInt32 *noticeNumberP
  2224. );
  2225.   
  2226. /*
  2227.  * nssPKIXNoticeReference_SetNoticeNumber
  2228.  *
  2229.  * -- fgmr comments --
  2230.  *
  2231.  * The error may be one of the following values:
  2232.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2233.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2234.  * 
  2235.  * Return value:
  2236.  *  PR_SUCCESS upon success
  2237.  *  PR_FAILURE upon failure
  2238.  */
  2239. NSS_EXTERN PRStatus
  2240. nssPKIXNoticeReference_SetNoticeNumber
  2241. (
  2242.   NSSPKIXNoticeReference *nr,
  2243.   PRInt32 i,
  2244.   PRInt32 noticeNumber
  2245. );
  2246. /*
  2247.  * nssPKIXNoticeReference_InsertNoticeNumber
  2248.  *
  2249.  * -- fgmr comments --
  2250.  *
  2251.  * The error may be one of the following values:
  2252.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2253.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2254.  *  NSS_ERROR_NO_MEMORY
  2255.  * 
  2256.  * Return value:
  2257.  *  PR_SUCCESS upon success
  2258.  *  PR_FAILURE upon failure
  2259.  */
  2260. NSS_EXTERN PRStatus
  2261. nssPKIXNoticeReference_InsertNoticeNumber
  2262. (
  2263.   NSSPKIXNoticeReference *nr,
  2264.   PRInt32 i,
  2265.   PRInt32 noticeNumber
  2266. );
  2267. /*
  2268.  * nssPKIXNoticeReference_AppendNoticeNumber
  2269.  *
  2270.  * -- fgmr comments --
  2271.  *
  2272.  * The error may be one of the following values:
  2273.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2274.  *  NSS_ERROR_NO_MEMORY
  2275.  * 
  2276.  * Return value:
  2277.  *  PR_SUCCESS upon success
  2278.  *  PR_FAILURE upon failure
  2279.  */
  2280. NSS_EXTERN PRStatus
  2281. nssPKIXNoticeReference_AppendNoticeNumber
  2282. (
  2283.   NSSPKIXNoticeReference *nr,
  2284.   PRInt32 noticeNumber
  2285. );
  2286. /*
  2287.  * nssPKIXNoticeReference_RemoveNoticeNumber
  2288.  *
  2289.  * -- fgmr comments --
  2290.  *
  2291.  * The error may be one of the following values:
  2292.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2293.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2294.  * 
  2295.  * Return value:
  2296.  *  PR_SUCCESS upon success
  2297.  *  PR_FAILURE upon failure
  2298.  */
  2299. NSS_EXTERN PRStatus
  2300. nssPKIXNoticeReference_RemoveNoticeNumber
  2301. (
  2302.   NSSPKIXNoticeReference *nr,
  2303.   PRInt32 i
  2304. );
  2305. /*
  2306.  *   { maybe number-exists-p gettor? }
  2307.  */
  2308. /*
  2309.  * nssPKIXNoticeReference_Equal
  2310.  *
  2311.  * -- fgmr comments --
  2312.  *
  2313.  * The error may be one of the following values:
  2314.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2315.  * 
  2316.  * Return value:
  2317.  *  PR_TRUE if the two objects have equal values
  2318.  *  PR_FALSE otherwise
  2319.  *  PR_FALSE upon error
  2320.  */
  2321. NSS_EXTERN PRBool
  2322. nssPKIXNoticeReference_Equal
  2323. (
  2324.   NSSPKIXNoticeReference *nr1,
  2325.   NSSPKIXNoticeReference *nr2,
  2326.   PRStatus *statusOpt
  2327. );
  2328. /*
  2329.  * nssPKIXNoticeReference_Duplicate
  2330.  *
  2331.  * -- fgmr comments --
  2332.  *
  2333.  * The error may be one of the following values:
  2334.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2335.  *  NSS_ERROR_NO_MEMORY
  2336.  *  NSS_ERROR_INVALID_ARENA
  2337.  * 
  2338.  * Return value:
  2339.  *  A valid pointer to an NSSPKIXNoticeReference upon success
  2340.  *  NULL upon failure
  2341.  */
  2342. NSS_EXTERN NSSPKIXNoticeReference *
  2343. nssPKIXNoticeReference_Duplicate
  2344. (
  2345.   NSSPKIXNoticeReference *nr,
  2346.   NSSArena *arenaOpt
  2347. );
  2348. #ifdef DEBUG
  2349. /*
  2350.  * nssPKIXNoticeReference_verifyPointer
  2351.  *
  2352.  * This method is only present in debug builds.
  2353.  *
  2354.  * If the specified pointer is a valid pointer to an NSSPKIXNoticeReference
  2355.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  2356.  * put an error on the error stack and return PR_FAILURE.
  2357.  *
  2358.  * The error may be one of the following values:
  2359.  *  NSS_ERROR_INVALID_PKIX_NOTICE_REFERENCE
  2360.  *
  2361.  * Return value:
  2362.  *  PR_SUCCESS if the pointer is valid
  2363.  *  PR_FAILURE if it isn't
  2364.  */
  2365. NSS_EXTERN PRStatus
  2366. nssPKIXNoticeReference_verifyPointer
  2367. (
  2368.   NSSPKIXNoticeReference *p
  2369. );
  2370. #endif /* DEBUG */
  2371. /*
  2372.  * DisplayText
  2373.  *
  2374.  * -- fgmr comments --
  2375.  *
  2376.  * From RFC 2459:
  2377.  *
  2378.  *  DisplayText ::= CHOICE {
  2379.  *       visibleString    VisibleString  (SIZE (1..200)),
  2380.  *       bmpString        BMPString      (SIZE (1..200)),
  2381.  *       utf8String       UTF8String     (SIZE (1..200)) }
  2382.  * 
  2383.  * The private calls for this type:
  2384.  *
  2385.  *  nssPKIXDisplayText_Decode
  2386.  *  nssPKIXDisplayText_CreateFromUTF8
  2387.  *  nssPKIXDisplayText_Encode
  2388.  *
  2389.  */
  2390. /*
  2391.  * nssPKIXDisplayText_Decode
  2392.  *
  2393.  * -- fgmr comments --
  2394.  *
  2395.  * The error may be one of the following values:
  2396.  *  NSS_ERROR_INVALID_BER
  2397.  *  NSS_ERROR_NO_MEMORY
  2398.  *  NSS_ERROR_INVALID_ARENA
  2399.  * 
  2400.  * Return value:
  2401.  *  A valid pointer to an NSSPKIXDisplayText upon success
  2402.  *  NULL upon failure
  2403.  */
  2404. NSS_EXTERN NSSPKIXDisplayText *
  2405. nssPKIXDisplayText_Decode
  2406. (
  2407.   NSSArena *arenaOpt,
  2408.   NSSBER *ber
  2409. );
  2410. /*
  2411.  * nssPKIXDisplayText_CreateFromUTF8
  2412.  *
  2413.  * { basically just enforces the length and charset limit }
  2414.  *
  2415.  * The error may be one of the following values:
  2416.  *  NSS_ERROR_INVALID_BER
  2417.  *  NSS_ERROR_NO_MEMORY
  2418.  *  NSS_ERROR_INVALID_ARENA
  2419.  * 
  2420.  * Return value:
  2421.  *  A valid pointer to an NSSPKIXDisplayText upon success
  2422.  *  NULL upon failure
  2423.  */
  2424. NSS_EXTERN NSSPKIXDisplayText *
  2425. nssPKIXDisplayText_CreateFromUTF8
  2426. (
  2427.   NSSArena *arenaOpt,
  2428.   NSSUTF8 *utf8
  2429. );
  2430. /*
  2431.  * nssPKIXDisplayText_Encode
  2432.  *
  2433.  *
  2434.  *
  2435.  * The error may be one of the following values:
  2436.  *  NSS_ERROR_INVALID_PKIX_DISPLAY_TEXT
  2437.  *  NSS_ERROR_NO_MEMORY
  2438.  *
  2439.  * Return value:
  2440.  *  A valid NSSBER pointer upon success
  2441.  *  NULL upon failure
  2442.  */
  2443. NSS_EXTERN NSSBER *
  2444. nssPKIXDisplayText_Encode
  2445. (
  2446.   NSSPKIXDisplayText *name,
  2447.   NSSASN1EncodingType encoding,
  2448.   NSSBER *rvOpt,
  2449.   NSSArena *arenaOpt
  2450. );
  2451. /*
  2452.  * PolicyMappings
  2453.  *
  2454.  * -- fgmr comments --
  2455.  *
  2456.  * From RFC 2459:
  2457.  *
  2458.  *  PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
  2459.  *       issuerDomainPolicy      CertPolicyId,
  2460.  *       subjectDomainPolicy     CertPolicyId }
  2461.  *
  2462.  * The private calls for this type:
  2463.  *
  2464.  *  nssPKIXPolicyMappings_Decode
  2465.  *  nssPKIXPolicyMappings_Create
  2466.  *  nssPKIXPolicyMappings_Destroy
  2467.  *  nssPKIXPolicyMappings_Encode
  2468.  *  nssPKIXPolicyMappings_GetPolicyMappingCount
  2469.  *  nssPKIXPolicyMappings_GetPolicyMappings
  2470.  *  nssPKIXPolicyMappings_SetPolicyMappings
  2471.  *  nssPKIXPolicyMappings_GetPolicyMapping
  2472.  *  nssPKIXPolicyMappings_SetPolicyMapping
  2473.  *  nssPKIXPolicyMappings_InsertPolicyMapping
  2474.  *  nssPKIXPolicyMappings_AppendPolicyMapping
  2475.  *  nssPKIXPolicyMappings_RemovePolicyMapping
  2476.  *  nssPKIXPolicyMappings_FindPolicyMapping
  2477.  *  nssPKIXPolicyMappings_Equal
  2478.  *  nssPKIXPolicyMappings_Duplicate
  2479.  *  nssPKIXPolicyMappings_IssuerDomainPolicyExists
  2480.  *  nssPKIXPolicyMappings_SubjectDomainPolicyExists
  2481.  *  nssPKIXPolicyMappings_FindIssuerDomainPolicy
  2482.  *  nssPKIXPolicyMappings_FindSubjectDomainPolicy
  2483.  *  nssPKIXPolicyMappings_MapIssuerToSubject
  2484.  *  nssPKIXPolicyMappings_MapSubjectToIssuer
  2485.  *    { find's and map's: what if there's more than one? }
  2486.  * 
  2487.  * In debug builds, the following call is available:
  2488.  *
  2489.  *  nssPKIXPolicyMappings_verifyPointer
  2490.  *
  2491.  */
  2492. /*
  2493.  * nssPKIXPolicyMappings_Decode
  2494.  *
  2495.  * -- fgmr comments --
  2496.  *
  2497.  * The error may be one of the following values:
  2498.  *  NSS_ERROR_INVALID_BER
  2499.  *  NSS_ERROR_NO_MEMORY
  2500.  *  NSS_ERROR_INVALID_ARENA
  2501.  * 
  2502.  * Return value:
  2503.  *  A valid pointer to an NSSPKIXPolicyMappings upon success
  2504.  *  NULL upon failure
  2505.  */
  2506. NSS_EXTERN NSSPKIXPolicyMappings *
  2507. nssPKIXPolicyMappings_Decode
  2508. (
  2509.   NSSArena *arenaOpt,
  2510.   NSSBER *ber
  2511. );
  2512. /*
  2513.  * nssPKIXPolicyMappings_Create
  2514.  *
  2515.  * -- fgmr comments --
  2516.  *
  2517.  * The error may be one of the following values:
  2518.  *  NSS_ERROR_NO_MEMORY
  2519.  *  NSS_ERROR_INVALID_ARENA
  2520.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  2521.  * 
  2522.  * Return value:
  2523.  *  A valid pointer to an NSSPKIXPolicyMappings upon success
  2524.  *  NULL upon failure
  2525.  */
  2526. NSS_EXTERN NSSPKIXPolicyMappings *
  2527. nssPKIXPolicyMappings_Decode
  2528. (
  2529.   NSSArena *arenaOpt,
  2530.   NSSPKIXpolicyMapping *policyMapping1,
  2531.   ...
  2532. );
  2533. /*
  2534.  * nssPKIXPolicyMappings_Destroy
  2535.  *
  2536.  * -- fgmr comments --
  2537.  *
  2538.  * The error may be one of the following values:
  2539.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2540.  * 
  2541.  * Return value:
  2542.  *  PR_SUCCESS upon success
  2543.  *  PR_FAILURE upon failure
  2544.  */
  2545. NSS_EXTERN PRStatus
  2546. nssPKIXPolicyMappings_Destroy
  2547. (
  2548.   NSSPKIXPolicyMappings *policyMappings
  2549. );
  2550. /*
  2551.  * nssPKIXPolicyMappings_Encode
  2552.  *
  2553.  * -- fgmr comments --
  2554.  *
  2555.  * The error may be one of the following values:
  2556.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2557.  *  NSS_ERROR_INVALID_ARENA
  2558.  *  NSS_ERROR_NO_MEMORY
  2559.  *  NSS_ERROR_INVALID_DATA
  2560.  * 
  2561.  * Return value:
  2562.  *  A valid NSSBER pointer upon success
  2563.  *  NULL upon failure
  2564.  */
  2565. NSS_EXTERN NSSBER *
  2566. nssPKIXPolicyMappings_Encode
  2567. (
  2568.   NSSPKIXPolicyMappings *policyMappings,
  2569.   NSSASN1EncodingType encoding,
  2570.   NSSBER *rvOpt,
  2571.   NSSArena *arenaOpt
  2572. );
  2573. /*
  2574.  * nssPKIXPolicyMappings_GetPolicyMappingCount
  2575.  *
  2576.  * -- fgmr comments --
  2577.  *
  2578.  * The error may be one of the following values:
  2579.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2580.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2581.  * 
  2582.  * Return value:
  2583.  *  Nonnegative integer upon success
  2584.  *  -1 upon failure.
  2585.  */
  2586. NSS_EXTERN PRInt32
  2587. nssPKIXPolicyMappings_GetPolicyMappingCount
  2588. (
  2589.   NSSPKIXPolicyMappings *policyMappings
  2590. );
  2591. /*
  2592.  * nssPKIXPolicyMappings_GetPolicyMappings
  2593.  *
  2594.  * -- fgmr comments --
  2595.  *
  2596.  * The error may be one of the following values:
  2597.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2598.  *  NSS_ERROR_INVALID_ARENA
  2599.  *  NSS_ERROR_NO_MEMORY
  2600.  *  NSS_ERROR_ARRAY_TOO_SMALL
  2601.  * 
  2602.  * Return value:
  2603.  *  A valid pointer to an array of NSSPKIXpolicyMapping pointers upon
  2604.  *      success
  2605.  *  NULL upon failure
  2606.  */
  2607. NSS_EXTERN NSSPKIXpolicyMapping **
  2608. nssPKIXPolicyMappings_GetPolicyMappings
  2609. (
  2610.   NSSPKIXPolicyMappings *policyMappings
  2611.   NSSPKIXpolicyMapping *rvOpt[],
  2612.   PRInt32 limit,
  2613.   NSSArena *arenaOpt
  2614. );
  2615. /*
  2616.  * nssPKIXPolicyMappings_SetPolicyMappings
  2617.  *
  2618.  * -- fgmr comments --
  2619.  *
  2620.  * The error may be one of the following values:
  2621.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2622.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  2623.  *  NSS_ERROR_NO_MEMORY
  2624.  * 
  2625.  * Return value:
  2626.  *  PR_SUCCESS upon success
  2627.  *  PR_FAILURE upon failure
  2628.  */
  2629. NSS_EXTERN PRStatus
  2630. nssPKIXPolicyMappings_SetPolicyMappings
  2631. (
  2632.   NSSPKIXPolicyMappings *policyMappings
  2633.   NSSPKIXpolicyMapping *policyMapping[]
  2634.   PRInt32 count
  2635. );
  2636. /*
  2637.  * nssPKIXPolicyMappings_GetPolicyMapping
  2638.  *
  2639.  * -- fgmr comments --
  2640.  *
  2641.  * The error may be one of the following values:
  2642.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2643.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2644.  *  NSS_ERROR_NO_MEMORY
  2645.  *  NSS_ERROR_INVALID_ARENA
  2646.  * 
  2647.  * Return value:
  2648.  *  A valid pointer to an NSSPKIXpolicyMapping upon success
  2649.  *  NULL upon failure
  2650.  */
  2651. NSS_EXTERN NSSPKIXpolicyMapping *
  2652. nssPKIXPolicyMappings_GetPolicyMapping
  2653. (
  2654.   NSSPKIXPolicyMappings *policyMappings
  2655.   PRInt32 i,
  2656.   NSSArena *arenaOpt
  2657. );
  2658. /*
  2659.  * nssPKIXPolicyMappings_SetPolicyMapping
  2660.  *
  2661.  * -- fgmr comments --
  2662.  *
  2663.  * The error may be one of the following values:
  2664.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2665.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  2666.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2667.  *  NSS_ERROR_NO_MEMORY
  2668.  * 
  2669.  * Return value:
  2670.  *  PR_SUCCESS upon success
  2671.  *  PR_FAILURE upon failure
  2672.  */
  2673. NSS_EXTERN PRStatus
  2674. nssPKIXPolicyMappings_SetPolicyMapping
  2675. (
  2676.   NSSPKIXPolicyMappings *policyMappings
  2677.   PRInt32 i,
  2678.   NSSPKIXpolicyMapping *policyMapping
  2679. );
  2680. /*
  2681.  * nssPKIXPolicyMappings_InsertPolicyMapping
  2682.  *
  2683.  * -- fgmr comments --
  2684.  *
  2685.  * The error may be one of the following values:
  2686.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2687.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  2688.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2689.  *  NSS_ERROR_NO_MEMORY
  2690.  * 
  2691.  * Return value:
  2692.  *  PR_SUCCESS upon success
  2693.  *  PR_FAILURE upon failure
  2694.  */
  2695. NSS_EXTERN PRStatus
  2696. nssPKIXPolicyMappings_InsertPolicyMapping
  2697. (
  2698.   NSSPKIXPolicyMappings *policyMappings
  2699.   PRInt32 i,
  2700.   NSSPKIXpolicyMapping *policyMapping
  2701. );
  2702. /*
  2703.  * nssPKIXPolicyMappings_AppendPolicyMapping
  2704.  *
  2705.  * -- fgmr comments --
  2706.  *
  2707.  * The error may be one of the following values:
  2708.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2709.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  2710.  *  NSS_ERROR_NO_MEMORY
  2711.  * 
  2712.  * Return value:
  2713.  *  PR_SUCCESS upon success
  2714.  *  PR_FAILURE upon failure
  2715.  */
  2716. NSS_EXTERN PRStatus
  2717. nssPKIXPolicyMappings_AppendPolicyMapping
  2718. (
  2719.   NSSPKIXPolicyMappings *policyMappings
  2720.   NSSPKIXpolicyMapping *policyMapping
  2721. );
  2722. /*
  2723.  * nssPKIXPolicyMappings_RemovePolicyMapping
  2724.  *
  2725.  * -- fgmr comments --
  2726.  *
  2727.  * The error may be one of the following values:
  2728.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2729.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2730.  * 
  2731.  * Return value:
  2732.  *  PR_SUCCESS upon success
  2733.  *  PR_FAILURE upon failure
  2734.  */
  2735. NSS_EXTERN PRStatus
  2736. nssPKIXPolicyMappings_RemovePolicyMapping
  2737. (
  2738.   NSSPKIXPolicyMappings *policyMappings
  2739.   PRInt32 i
  2740. );
  2741. /*
  2742.  * nssPKIXPolicyMappings_FindPolicyMapping
  2743.  *
  2744.  * -- fgmr comments --
  2745.  *
  2746.  * The error may be one of the following values:
  2747.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2748.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  2749.  *  NSS_ERROR_NOT_FOUND
  2750.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2751.  * 
  2752.  * Return value:
  2753.  *  The index of the specified policy mapping upon success
  2754.  *  -1 upon failure.
  2755.  */
  2756. NSS_EXTERN PRInt32
  2757. nssPKIXPolicyMappings_FindPolicyMapping
  2758. (
  2759.   NSSPKIXPolicyMappings *policyMappings
  2760.   NSSPKIXpolicyMapping *policyMapping
  2761. );
  2762. /*
  2763.  * nssPKIXPolicyMappings_Equal
  2764.  *
  2765.  * -- fgmr comments --
  2766.  *
  2767.  * The error may be one of the following values:
  2768.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2769.  * 
  2770.  * Return value:
  2771.  *  PR_TRUE if the two objects have equal values
  2772.  *  PR_FALSE otherwise
  2773.  *  PR_FALSE upon error
  2774.  */
  2775. NSS_EXTERN PRBool
  2776. nssPKIXPolicyMappings_Equal
  2777. (
  2778.   NSSPKIXPolicyMappings *policyMappings1,
  2779.   NSSPKIXpolicyMappings *policyMappings2,
  2780.   PRStatus *statusOpt
  2781. );
  2782. /*
  2783.  * nssPKIXPolicyMappings_Duplicate
  2784.  *
  2785.  * -- fgmr comments --
  2786.  *
  2787.  * The error may be one of the following values:
  2788.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2789.  *  NSS_ERROR_INVALID_ARENA
  2790.  *  NSS_ERROR_NO_MEMORY
  2791.  * 
  2792.  * Return value:
  2793.  *  A valid pointer to an NSSPKIXPolicyMappings upon success
  2794.  *  NULL upon failure
  2795.  */
  2796. NSS_EXTERN NSSPKIXPolicyMappings *
  2797. nssPKIXPolicyMappings_Duplicate
  2798. (
  2799.   NSSPKIXPolicyMappings *policyMappings,
  2800.   NSSArena *arenaOpt
  2801. );
  2802. #ifdef DEBUG
  2803. /*
  2804.  * nssPKIXPolicyMappings_verifyPointer
  2805.  *
  2806.  * This method is only present in debug builds.
  2807.  *
  2808.  * If the specified pointer is a valid pointer to an NSSPKIXPolicyMappings
  2809.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  2810.  * put an error on the error stack and return PR_FAILURE.
  2811.  *
  2812.  * The error may be one of the following values:
  2813.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2814.  *
  2815.  * Return value:
  2816.  *  PR_SUCCESS if the pointer is valid
  2817.  *  PR_FAILURE if it isn't
  2818.  */
  2819. NSS_EXTERN PRStatus
  2820. nssPKIXPolicyMappings_verifyPointer
  2821. (
  2822.   NSSPKIXPolicyMappings *p
  2823. );
  2824. #endif /* DEBUG */
  2825. /*
  2826.  * nssPKIXPolicyMappings_IssuerDomainPolicyExists
  2827.  *
  2828.  * -- fgmr comments --
  2829.  *
  2830.  * The error may be one of the following values:
  2831.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2832.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  2833.  * 
  2834.  * Return value:
  2835.  *  PR_TRUE if the specified domain policy OID exists
  2836.  *  PR_FALSE if it doesn't
  2837.  *  PR_FALSE upon failure
  2838.  */
  2839. NSS_EXTERN PRBool
  2840. nssPKIXPolicyMappings_IssuerDomainPolicyExists
  2841. (
  2842.   NSSPKIXPolicyMappings *policyMappings,
  2843.   NSSPKIXCertPolicyId *issuerDomainPolicy,
  2844.   PRStatus *statusOpt
  2845. );
  2846. /*
  2847.  * nssPKIXPolicyMappings_SubjectDomainPolicyExists
  2848.  *
  2849.  * -- fgmr comments --
  2850.  *
  2851.  * The error may be one of the following values:
  2852.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2853.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  2854.  * 
  2855.  * Return value:
  2856.  *  PR_TRUE if the specified domain policy OID exists
  2857.  *  PR_FALSE if it doesn't
  2858.  *  PR_FALSE upon failure
  2859.  */
  2860. NSS_EXTERN PRBool
  2861. nssPKIXPolicyMappings_SubjectDomainPolicyExists
  2862. (
  2863.   NSSPKIXPolicyMappings *policyMappings,
  2864.   NSSPKIXCertPolicyId *subjectDomainPolicy,
  2865.   PRStatus *statusOpt
  2866. );
  2867. /*
  2868.  * nssPKIXPolicyMappings_FindIssuerDomainPolicy
  2869.  *
  2870.  * -- fgmr comments --
  2871.  *
  2872.  * The error may be one of the following values:
  2873.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2874.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  2875.  *  NSS_ERROR_NOT_FOUND
  2876.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2877.  * 
  2878.  * Return value:
  2879.  *  The index of the specified policy mapping upon success
  2880.  *  -1 upon failure.
  2881.  */
  2882. NSS_EXTERN PRInt32
  2883. nssPKIXPolicyMappings_FindIssuerDomainPolicy
  2884. (
  2885.   NSSPKIXPolicyMappings *policyMappings,
  2886.   NSSPKIXCertPolicyId *issuerDomainPolicy
  2887. );
  2888. /*
  2889.  * nssPKIXPolicyMappings_FindSubjectDomainPolicy
  2890.  *
  2891.  * -- fgmr comments --
  2892.  *
  2893.  * The error may be one of the following values:
  2894.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2895.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  2896.  *  NSS_ERROR_NOT_FOUND
  2897.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  2898.  * 
  2899.  * Return value:
  2900.  *  The index of the specified policy mapping upon success
  2901.  *  -1 upon failure.
  2902.  */
  2903. NSS_EXTERN PRInt32
  2904. nssPKIXPolicyMappings_FindSubjectDomainPolicy
  2905. (
  2906.   NSSPKIXPolicyMappings *policyMappings,
  2907.   NSSPKIXCertPolicyId *issuerDomainPolicy
  2908. );
  2909. /*
  2910.  * nssPKIXPolicyMappings_MapIssuerToSubject
  2911.  *
  2912.  * -- fgmr comments --
  2913.  *
  2914.  * The error may be one of the following values:
  2915.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2916.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  2917.  *  NSS_ERROR_NOT_FOUND
  2918.  * 
  2919.  * Return value:
  2920.  *  A valid pointer to an NSSPKIXCertPolicyId upon success
  2921.  *  NULL upon failure
  2922.  */
  2923. NSS_EXTERN NSSPKIXCertPolicyId *
  2924. nssPKIXPolicyMappings_MapIssuerToSubject
  2925. (
  2926.   NSSPKIXPolicyMappings *policyMappings,
  2927.   NSSPKIXCertPolicyId *issuerDomainPolicy
  2928. );
  2929. /*
  2930.  * nssPKIXPolicyMappings_MapSubjectToIssuer
  2931.  *
  2932.  * -- fgmr comments --
  2933.  *
  2934.  * The error may be one of the following values:
  2935.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPINGS
  2936.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  2937.  *  NSS_ERROR_NOT_FOUND
  2938.  * 
  2939.  * Return value:
  2940.  *  A valid pointer to an NSSPKIXCertPolicyId upon success
  2941.  *  NULL upon failure
  2942.  */
  2943. NSS_EXTERN NSSPKIXCertPolicyId *
  2944. nssPKIXPolicyMappings_MapSubjectToIssuer
  2945. (
  2946.   NSSPKIXPolicyMappings *policyMappings,
  2947.   NSSPKIXCertPolicyId *issuerDomainPolicy
  2948. );
  2949. /*
  2950.  * policyMapping
  2951.  *
  2952.  * Helper structure for PolicyMappings
  2953.  *
  2954.  *                                               SEQUENCE {
  2955.  *       issuerDomainPolicy      CertPolicyId,
  2956.  *       subjectDomainPolicy     CertPolicyId }
  2957.  *
  2958.  * The private calls for this type:
  2959.  *
  2960.  *  nssPKIXpolicyMapping_Decode
  2961.  *  nssPKIXpolicyMapping_Create
  2962.  *  nssPKIXpolicyMapping_Destroy
  2963.  *  nssPKIXpolicyMapping_Encode
  2964.  *  nssPKIXpolicyMapping_GetIssuerDomainPolicy
  2965.  *  nssPKIXpolicyMapping_SetIssuerDomainPolicy
  2966.  *  nssPKIXpolicyMapping_GetSubjectDomainPolicy
  2967.  *  nssPKIXpolicyMapping_SetSubjectDomainPolicy
  2968.  *  nssPKIXpolicyMapping_Equal
  2969.  *  nssPKIXpolicyMapping_Duplicate
  2970.  * 
  2971.  * In debug builds, the following call is available:
  2972.  *
  2973.  *  nssPKIXpolicyMapping_verifyPointer
  2974.  *
  2975.  */
  2976. /*
  2977.  * nssPKIXpolicyMapping_Decode
  2978.  *
  2979.  * -- fgmr comments --
  2980.  *
  2981.  * The error may be one of the following values:
  2982.  *  NSS_ERROR_INVALID_BER
  2983.  *  NSS_ERROR_NO_MEMORY
  2984.  *  NSS_ERROR_INVALID_ARENA
  2985.  * 
  2986.  * Return value:
  2987.  *  A valid pointer to an NSSPKIXpolicyMapping upon success
  2988.  *  NULL upon failure
  2989.  */
  2990. NSS_EXTERN NSSPKIXpolicyMapping *
  2991. nssPKIXpolicyMapping_Decode
  2992. (
  2993.   NSSArena *arenaOpt,
  2994.   NSSBER *ber
  2995. );
  2996. /*
  2997.  * nssPKIXpolicyMapping_Create
  2998.  *
  2999.  * -- fgmr comments --
  3000.  *
  3001.  * The error may be one of the following values:
  3002.  *  NSS_ERROR_NO_MEMORY
  3003.  *  NSS_ERROR_INVALID_ARENA
  3004.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  3005.  * 
  3006.  * Return value:
  3007.  *  A valid pointer to an NSSPKIXpolicyMapping upon success
  3008.  *  NULL upon failure
  3009.  */
  3010. NSS_EXTERN NSSPKIXpolicyMapping *
  3011. nssPKIXpolicyMapping_Create
  3012. (
  3013.   NSSArena *arenaOpt,
  3014.   NSSPKIXCertPolicyId *issuerDomainPolicy,
  3015.   NSSPKIXCertPolicyId *subjectDomainPolicy
  3016. );
  3017. /*
  3018.  * nssPKIXpolicyMapping_Destroy
  3019.  *
  3020.  * -- fgmr comments --
  3021.  *
  3022.  * The error may be one of the following values:
  3023.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3024.  * 
  3025.  * Return value:
  3026.  *  PR_SUCCESS upon success
  3027.  *  PR_FAILURE upon failure
  3028.  */
  3029. NSS_EXTERN PRStatus
  3030. nssPKIXpolicyMapping_Destroy
  3031. (
  3032.   NSSPKIXpolicyMapping *policyMapping
  3033. );
  3034. /*
  3035.  * nssPKIXpolicyMapping_Encode
  3036.  *
  3037.  * -- fgmr comments --
  3038.  *
  3039.  * The error may be one of the following values:
  3040.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3041.  *  NSS_ERROR_INVALID_ARENA
  3042.  *  NSS_ERROR_NO_MEMORY
  3043.  *  NSS_ERROR_INVALID_DATA
  3044.  * 
  3045.  * Return value:
  3046.  *  A valid NSSBER pointer upon success
  3047.  *  NULL upon failure
  3048.  */
  3049. NSS_EXTERN NSSBER *
  3050. nssPKIXpolicyMapping_Encode
  3051. (
  3052.   NSSPKIXpolicyMapping *policyMapping,
  3053.   NSSASN1EncodingType encoding,
  3054.   NSSBER *rvOpt,
  3055.   NSSArena *arenaOpt
  3056. );
  3057. /*
  3058.  * nssPKIXpolicyMapping_GetIssuerDomainPolicy
  3059.  *
  3060.  * -- fgmr comments --
  3061.  *
  3062.  * The error may be one of the following values:
  3063.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3064.  *  NSS_ERROR_NO_MEMORY
  3065.  * 
  3066.  * Return value:
  3067.  *  A valid pointer to an NSSPKIXCertPolicyId OID upon success
  3068.  *  NULL upon faliure
  3069.  */
  3070. NSS_EXTERN NSSPKIXCertPolicyId *
  3071. nssPKIXpolicyMapping_GetIssuerDomainPolicy
  3072. (
  3073.   NSSPKIXpolicyMapping *policyMapping
  3074. );
  3075. /*
  3076.  * nssPKIXpolicyMapping_SetIssuerDomainPolicy
  3077.  *
  3078.  * -- fgmr comments --
  3079.  *
  3080.  * The error may be one of the following values:
  3081.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3082.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  3083.  *  NSS_ERROR_NO_MEMORY
  3084.  * 
  3085.  * Return value:
  3086.  *  PR_SUCCESS upon success
  3087.  *  PR_FAILURE upon failure
  3088.  */
  3089. NSS_EXTERN PRStatus
  3090. nssPKIXpolicyMapping_SetIssuerDomainPolicy
  3091. (
  3092.   NSSPKIXpolicyMapping *policyMapping,
  3093.   NSSPKIXCertPolicyId *issuerDomainPolicy
  3094. );
  3095. /*
  3096.  * nssPKIXpolicyMapping_GetSubjectDomainPolicy
  3097.  *
  3098.  * -- fgmr comments --
  3099.  *
  3100.  * The error may be one of the following values:
  3101.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3102.  *  NSS_ERROR_NO_MEMORY
  3103.  * 
  3104.  * Return value:
  3105.  *  A valid pointer to an NSSPKIXCertPolicyId OID upon success
  3106.  *  NULL upon faliure
  3107.  */
  3108. NSS_EXTERN NSSPKIXCertPolicyId *
  3109. nssPKIXpolicyMapping_GetSubjectDomainPolicy
  3110. (
  3111.   NSSPKIXpolicyMapping *policyMapping
  3112. );
  3113. /*
  3114.  * nssPKIXpolicyMapping_SetSubjectDomainPolicy
  3115.  *
  3116.  * -- fgmr comments --
  3117.  *
  3118.  * The error may be one of the following values:
  3119.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3120.  *  NSS_ERROR_INVALID_PKIX_CERT_POLICY_ID
  3121.  *  NSS_ERROR_NO_MEMORY
  3122.  * 
  3123.  * Return value:
  3124.  *  PR_SUCCESS upon success
  3125.  *  PR_FAILURE upon failure
  3126.  */
  3127. NSS_EXTERN PRStatus
  3128. nssPKIXpolicyMapping_SetSubjectDomainPolicy
  3129. (
  3130.   NSSPKIXpolicyMapping *policyMapping,
  3131.   NSSPKIXCertPolicyId *subjectDomainPolicy
  3132. );
  3133. /*
  3134.  * nssPKIXpolicyMapping_Equal
  3135.  *
  3136.  * -- fgmr comments --
  3137.  *
  3138.  * The error may be one of the following values:
  3139.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3140.  * 
  3141.  * Return value:
  3142.  *  PR_TRUE if the two objects have equal values
  3143.  *  PR_FALSE otherwise
  3144.  *  PR_FALSE upon error
  3145.  */
  3146. NSS_EXTERN PRBool
  3147. nssPKIXpolicyMapping_Equal
  3148. (
  3149.   NSSPKIXpolicyMapping *policyMapping1,
  3150.   NSSPKIXpolicyMapping *policyMapping2,
  3151.   PRStatus *statusOpt
  3152. );
  3153. /*
  3154.  * nssPKIXpolicyMapping_Duplicate
  3155.  *
  3156.  * -- fgmr comments --
  3157.  *
  3158.  * The error may be one of the following values:
  3159.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3160.  *  NSS_ERROR_INVALID_ARENA
  3161.  *  NSS_ERROR_NO_MEMORY
  3162.  * 
  3163.  * Return value:
  3164.  *  A valid pointer to an NSSPKIXpolicyMapping upon success
  3165.  *  NULL upon failure
  3166.  */
  3167. NSS_EXTERN NSSPKIXpolicyMapping *
  3168. nssPKIXpolicyMapping_Duplicate
  3169. (
  3170.   NSSPKIXpolicyMapping *policyMapping,
  3171.   NSSArena *arenaOpt
  3172. );
  3173. #ifdef DEBUG
  3174. /*
  3175.  * nssPKIXpolicyMapping_verifyPointer
  3176.  *
  3177.  * This method is only present in debug builds.
  3178.  *
  3179.  * If the specified pointer is a valid pointer to an NSSPKIXpolicyMapping
  3180.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  3181.  * put an error on the error stack and return PR_FAILURE.
  3182.  *
  3183.  * The error may be one of the following values:
  3184.  *  NSS_ERROR_INVALID_PKIX_POLICY_MAPPING
  3185.  *
  3186.  * Return value:
  3187.  *  PR_SUCCESS if the pointer is valid
  3188.  *  PR_FAILURE if it isn't
  3189.  */
  3190. NSS_EXTERN PRStatus
  3191. nssPKIXpolicyMapping_verifyPointer
  3192. (
  3193.   NSSPKIXpolicyMapping *p
  3194. );
  3195. #endif /* DEBUG */
  3196. /*
  3197.  * GeneralName
  3198.  *
  3199.  * This structure contains a union of the possible general names,
  3200.  * of which there are several.
  3201.  *
  3202.  * From RFC 2459:
  3203.  *
  3204.  *  GeneralName ::= CHOICE {
  3205.  *       otherName                       [0]     AnotherName,
  3206.  *       rfc822Name                      [1]     IA5String,
  3207.  *       dNSName                         [2]     IA5String,
  3208.  *       x400Address                     [3]     ORAddress,
  3209.  *       directoryName                   [4]     Name,
  3210.  *       ediPartyName                    [5]     EDIPartyName,
  3211.  *       uniformResourceIdentifier       [6]     IA5String,
  3212.  *       iPAddress                       [7]     OCTET STRING,
  3213.  *       registeredID                    [8]     OBJECT IDENTIFIER }
  3214.  *
  3215.  * The private calls for this type:
  3216.  *
  3217.  *  nssPKIXGeneralName_Decode
  3218.  *  nssPKIXGeneralName_CreateFromUTF8
  3219.  *  nssPKIXGeneralName_Create
  3220.  *  nssPKIXGeneralName_CreateFromOtherName
  3221.  *  nssPKIXGeneralName_CreateFromRfc822Name
  3222.  *  nssPKIXGeneralName_CreateFromDNSName
  3223.  *  nssPKIXGeneralName_CreateFromX400Address
  3224.  *  nssPKIXGeneralName_CreateFromDirectoryName
  3225.  *  nssPKIXGeneralName_CreateFromEDIPartyName
  3226.  *  nssPKIXGeneralName_CreateFromUniformResourceIdentifier
  3227.  *  nssPKIXGeneralName_CreateFromIPAddress
  3228.  *  nssPKIXGeneralName_CreateFromRegisteredID
  3229.  *  nssPKIXGeneralName_Destroy
  3230.  *  nssPKIXGeneralName_Encode
  3231.  *  nssPKIXGeneralName_GetUTF8Encoding
  3232.  *  nssPKIXGeneralName_GetChoice
  3233.  *  nssPKIXGeneralName_GetOtherName
  3234.  *  nssPKIXGeneralName_GetRfc822Name
  3235.  *  nssPKIXGeneralName_GetDNSName
  3236.  *  nssPKIXGeneralName_GetX400Address
  3237.  *  nssPKIXGeneralName_GetDirectoryName
  3238.  *  nssPKIXGeneralName_GetEDIPartyName
  3239.  *  nssPKIXGeneralName_GetUniformResourceIdentifier
  3240.  *  nssPKIXGeneralName_GetIPAddress
  3241.  *  nssPKIXGeneralName_GetRegisteredID
  3242.  *  nssPKIXGeneralName_GetSpecifiedChoice
  3243.  *  nssPKIXGeneralName_Equal
  3244.  *  nssPKIXGeneralName_Duplicate
  3245.  *  (in pki1 I had specific attribute value gettors here too)
  3246.  * 
  3247.  * In debug builds, the following call is available:
  3248.  *
  3249.  *  nssPKIXGeneralName_verifyPointer
  3250.  *
  3251.  */
  3252. /*
  3253.  * nssPKIXGeneralName_Decode
  3254.  *
  3255.  * -- fgmr comments --
  3256.  *
  3257.  * The error may be one of the following values:
  3258.  *  NSS_ERROR_INVALID_BER
  3259.  *  NSS_ERROR_NO_MEMORY
  3260.  *  NSS_ERROR_INVALID_ARENA
  3261.  * 
  3262.  * Return value:
  3263.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3264.  *  NULL upon failure
  3265.  */
  3266. NSS_EXTERN NSSPKIXGeneralName *
  3267. nssPKIXGeneralName_Decode
  3268. (
  3269.   NSSArena *arenaOpt,
  3270.   NSSBER *ber
  3271. );
  3272. /*
  3273.  * nssPKIXGeneralName_CreateFromUTF8
  3274.  *
  3275.  * -- fgmr comments --
  3276.  *
  3277.  * The error may be one of the following values:
  3278.  *  NSS_ERROR_INVALID_STRING
  3279.  *  NSS_ERROR_NO_MEMORY
  3280.  *  NSS_ERROR_INVALID_ARENA
  3281.  * 
  3282.  * Return value:
  3283.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3284.  *  NULL upon failure
  3285.  */
  3286. NSS_EXTERN NSSPKIXGeneralName *
  3287. nssPKIXGeneralName_CreateFromUTF8
  3288. (
  3289.   NSSArena *arenaOpt,
  3290.   NSSUTF8 *utf8
  3291. );
  3292. /*
  3293.  * nssPKIXGeneralName_Create
  3294.  *
  3295.  * -- fgmr comments --
  3296.  *
  3297.  * The error may be one of the following values:
  3298.  *  NSS_ERROR_NO_MEMORY
  3299.  *  NSS_ERROR_INVALID_ARENA
  3300.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME_CHOICE
  3301.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  3302.  *  NSS_ERROR_INVALID_PKIX_IA5_STRING
  3303.  *  NSS_ERROR_INVALID_PKIX_OR_ADDRESS
  3304.  *  NSS_ERROR_INVALID_PKIX_NAME
  3305.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  3306.  *  NSS_ERROR_INVALID_ITEM
  3307.  *  NSS_ERROR_INVALID_OID
  3308.  * 
  3309.  * Return value:
  3310.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3311.  *  NULL upon failure
  3312.  */
  3313. NSS_EXTERN NSSPKIXGeneralName *
  3314. nssPKIXGeneralName_Create
  3315. (
  3316.   NSSArena *arenaOpt,
  3317.   NSSPKIXGeneralNameChoice choice,
  3318.   void *content
  3319. );
  3320. /*
  3321.  * nssPKIXGeneralName_CreateFromOtherName
  3322.  *
  3323.  * -- fgmr comments --
  3324.  *
  3325.  * The error may be one of the following values:
  3326.  *  NSS_ERROR_NO_MEMORY
  3327.  *  NSS_ERROR_INVALID_ARENA
  3328.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  3329.  * 
  3330.  * Return value:
  3331.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3332.  *  NULL upon failure
  3333.  */
  3334. NSS_EXTERN NSSPKIXGeneralName *
  3335. nssPKIXGeneralName_CreateFromOtherName
  3336. (
  3337.   NSSArena *arenaOpt,
  3338.   NSSPKIXAnotherName *otherName
  3339. );
  3340. /*
  3341.  * nssPKIXGeneralName_CreateFromRfc822Name
  3342.  *
  3343.  * -- fgmr comments --
  3344.  *
  3345.  * The error may be one of the following values:
  3346.  *  NSS_ERROR_NO_MEMORY
  3347.  *  NSS_ERROR_INVALID_ARENA
  3348.  *  NSS_ERROR_INVALID_PKIX_IA5_STRING
  3349.  * 
  3350.  * Return value:
  3351.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3352.  *  NULL upon failure
  3353.  */
  3354. NSS_EXTERN NSSPKIXGeneralName *
  3355. nssPKIXGeneralName_CreateFromRfc822Name
  3356. (
  3357.   NSSArena *arenaOpt,
  3358.   NSSUTF8 *rfc822Name
  3359. );
  3360. /*
  3361.  * nssPKIXGeneralName_CreateFromDNSName
  3362.  *
  3363.  * -- fgmr comments --
  3364.  *
  3365.  * The error may be one of the following values:
  3366.  *  NSS_ERROR_NO_MEMORY
  3367.  *  NSS_ERROR_INVALID_ARENA
  3368.  *  NSS_ERROR_INVALID_PKIX_IA5_STRING
  3369.  * 
  3370.  * Return value:
  3371.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3372.  *  NULL upon failure
  3373.  */
  3374. NSS_EXTERN NSSPKIXGeneralName *
  3375. nssPKIXGeneralName_CreateFromDNSName
  3376. (
  3377.   NSSArena *arenaOpt,
  3378.   NSSUTF8 *dNSName
  3379. );
  3380. /*
  3381.  * nssPKIXGeneralName_CreateFromX400Address
  3382.  *
  3383.  * -- fgmr comments --
  3384.  *
  3385.  * The error may be one of the following values:
  3386.  *  NSS_ERROR_NO_MEMORY
  3387.  *  NSS_ERROR_INVALID_ARENA
  3388.  *  NSS_ERROR_INVALID_PKIX_OR_ADDRESS
  3389.  * 
  3390.  * Return value:
  3391.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3392.  *  NULL upon failure
  3393.  */
  3394. NSS_EXTERN NSSPKIXGeneralName *
  3395. nssPKIXGeneralName_CreateFromX400Address
  3396. (
  3397.   NSSArena *arenaOpt,
  3398.   NSSPKIXORAddress *x400Address
  3399. );
  3400. /*
  3401.  * nssPKIXGeneralName_CreateFromDirectoryName
  3402.  *
  3403.  * -- fgmr comments --
  3404.  *
  3405.  * The error may be one of the following values:
  3406.  *  NSS_ERROR_NO_MEMORY
  3407.  *  NSS_ERROR_INVALID_ARENA
  3408.  *  NSS_ERROR_INVALID_PKIX_NAME
  3409.  * 
  3410.  * Return value:
  3411.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3412.  *  NULL upon failure
  3413.  */
  3414. NSS_EXTERN NSSPKIXGeneralName *
  3415. nssPKIXGeneralName_CreateFromDirectoryName
  3416. (
  3417.   NSSArena *arenaOpt,
  3418.   NSSPKIXName *directoryName
  3419. );
  3420. /*
  3421.  * nssPKIXGeneralName_CreateFromEDIPartyName
  3422.  *
  3423.  * -- fgmr comments --
  3424.  *
  3425.  * The error may be one of the following values:
  3426.  *  NSS_ERROR_NO_MEMORY
  3427.  *  NSS_ERROR_INVALID_ARENA
  3428.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  3429.  * 
  3430.  * Return value:
  3431.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3432.  *  NULL upon failure
  3433.  */
  3434. NSS_EXTERN NSSPKIXGeneralName *
  3435. nssPKIXGeneralName_CreateFromEDIPartyName
  3436. (
  3437.   NSSArena *arenaOpt,
  3438.   NSSPKIXEDIPartyName *ediPartyname
  3439. );
  3440. /*
  3441.  * nssPKIXGeneralName_CreateFromUniformResourceIdentifier
  3442.  *
  3443.  * -- fgmr comments --
  3444.  *
  3445.  * The error may be one of the following values:
  3446.  *  NSS_ERROR_NO_MEMORY
  3447.  *  NSS_ERROR_INVALID_ARENA
  3448.  *  NSS_ERROR_INVALID_PKIX_IA5_STRING
  3449.  * 
  3450.  * Return value:
  3451.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3452.  *  NULL upon failure
  3453.  */
  3454. NSS_EXTERN NSSPKIXGeneralName *
  3455. nssPKIXGeneralName_CreateFromUniformResourceIdentifier
  3456. (
  3457.   NSSArena *arenaOpt,
  3458.   NSSUTF8 *uniformResourceIdentifier
  3459. );
  3460. /*
  3461.  * nssPKIXGeneralName_CreateFromIPAddress
  3462.  *
  3463.  * -- fgmr comments --
  3464.  *
  3465.  * The error may be one of the following values:
  3466.  *  NSS_ERROR_NO_MEMORY
  3467.  *  NSS_ERROR_INVALID_ARENA
  3468.  *  NSS_ERROR_INVALID_ITEM
  3469.  * 
  3470.  * Return value:
  3471.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3472.  *  NULL upon failure
  3473.  */
  3474. NSS_EXTERN NSSPKIXGeneralName *
  3475. nssPKIXGeneralName_CreateFromIPAddress
  3476. (
  3477.   NSSArena *arenaOpt,
  3478.   NSSItem *iPAddress
  3479. );
  3480. /*
  3481.  * nssPKIXGeneralName_CreateFromRegisteredID
  3482.  *
  3483.  * -- fgmr comments --
  3484.  *
  3485.  * The error may be one of the following values:
  3486.  *  NSS_ERROR_NO_MEMORY
  3487.  *  NSS_ERROR_INVALID_ARENA
  3488.  *  NSS_ERROR_INVALID_OID
  3489.  * 
  3490.  * Return value:
  3491.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3492.  *  NULL upon failure
  3493.  */
  3494. NSS_EXTERN NSSPKIXGeneralName *
  3495. nssPKIXGeneralName_CreateFromRegisteredID
  3496. (
  3497.   NSSArena *arenaOpt,
  3498.   NSSOID *registeredID
  3499. );
  3500. /*
  3501.  * nssPKIXGeneralName_Destroy
  3502.  *
  3503.  * -- fgmr comments --
  3504.  *
  3505.  * The error may be one of the following values:
  3506.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3507.  * 
  3508.  * Return value:
  3509.  *  PR_SUCCESS upon success
  3510.  *  PR_FAILURE upon failure
  3511.  */
  3512. NSS_EXTERN PRStatus
  3513. nssPKIXGeneralName_Destroy
  3514. (
  3515.   NSSPKIXGeneralName *generalName
  3516. );
  3517. /*
  3518.  * nssPKIXGeneralName_Encode
  3519.  *
  3520.  * -- fgmr comments --
  3521.  *
  3522.  * The error may be one of the following values:
  3523.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3524.  *  NSS_ERROR_INVALID_ARENA
  3525.  *  NSS_ERROR_NO_MEMORY
  3526.  * 
  3527.  * Return value:
  3528.  *  A valid NSSBER pointer upon success
  3529.  *  NULL upon failure
  3530.  */
  3531. NSS_EXTERN NSSBER *
  3532. nssPKIXGeneralName_Encode
  3533. (
  3534.   NSSPKIXGeneralName *generalName,
  3535.   NSSASN1EncodingType encoding,
  3536.   NSSBER *rvOpt,
  3537.   NSSArena *arenaOpt
  3538. );
  3539. /*
  3540.  * nssPKIXGeneralName_GetUTF8Encoding
  3541.  *
  3542.  * -- fgmr comments --
  3543.  *
  3544.  * The error may be one of the following values:
  3545.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3546.  *  NSS_ERROR_INVALID_ARENA
  3547.  *  NSS_ERROR_NO_MEMORY
  3548.  * 
  3549.  * Return value:
  3550.  *  A valid pointer to an NSSUTF8 upon success
  3551.  *  NULL upon failure
  3552.  */
  3553. NSS_EXTERN NSSUTF8 *
  3554. nssPKIXGeneralName_GetUTF8Encoding
  3555. (
  3556.   NSSPKIXGeneralName *generalName,
  3557.   NSSArena *arenaOpt
  3558. );
  3559. /*
  3560.  * nssPKIXGeneralName_GetChoice
  3561.  *
  3562.  * -- fgmr comments --
  3563.  *
  3564.  * The error may be one of the following values:
  3565.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3566.  * 
  3567.  * Return value:
  3568.  *  A valid NSSPKIXGeneralNameChoice value upon success
  3569.  *  NSSPKIXGeneralNameChoice_NSSinvalid upon failure
  3570.  */
  3571. NSS_EXTERN NSSPKIXGeneralNameChoice
  3572. nssPKIXGeneralName_GetChoice
  3573. (
  3574.   NSSPKIXGeneralName *generalName
  3575. );
  3576. /*
  3577.  * nssPKIXGeneralName_GetOtherName
  3578.  *
  3579.  * -- fgmr comments --
  3580.  *
  3581.  * The error may be one of the following values:
  3582.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3583.  *  NSS_ERROR_WRONG_CHOICE
  3584.  *  NSS_ERROR_INVALID_ARENA
  3585.  *  NSS_ERROR_NO_MEMORY
  3586.  * 
  3587.  * Return value:
  3588.  *  A valid pointer to an NSSPKIXAnotherName upon success
  3589.  *  NULL upon failure
  3590.  */
  3591. NSS_EXTERN NSSPKIXAnotherName *
  3592. nssPKIXGeneralName_GetOtherName
  3593. (
  3594.   NSSPKIXGeneralName *generalName,
  3595.   NSSArena *arenaOpt
  3596. );
  3597. /*
  3598.  * nssPKIXGeneralName_GetRfc822Name
  3599.  *
  3600.  * -- fgmr comments --
  3601.  *
  3602.  * The error may be one of the following values:
  3603.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3604.  *  NSS_ERROR_WRONG_CHOICE
  3605.  *  NSS_ERROR_INVALID_ARENA
  3606.  *  NSS_ERROR_NO_MEMORY
  3607.  * 
  3608.  * Return value:
  3609.  *  A valid pointer to an NSSUTF8 upon success
  3610.  *  NULL upon failure
  3611.  */
  3612. NSS_EXTERN NSSUTF8 *
  3613. nssPKIXGeneralName_GetRfc822Name
  3614. (
  3615.   NSSPKIXGeneralName *generalName,
  3616.   NSSArena *arenaOpt
  3617. );
  3618. /*
  3619.  * nssPKIXGeneralName_GetDNSName
  3620.  *
  3621.  * -- fgmr comments --
  3622.  *
  3623.  * The error may be one of the following values:
  3624.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3625.  *  NSS_ERROR_WRONG_CHOICE
  3626.  *  NSS_ERROR_INVALID_ARENA
  3627.  *  NSS_ERROR_NO_MEMORY
  3628.  * 
  3629.  * Return value:
  3630.  *  A valid pointer to an NSSUTF8 upon success
  3631.  *  NULL upon failure
  3632.  */
  3633. NSS_EXTERN NSSUTF8 *
  3634. nssPKIXGeneralName_GetDNSName
  3635. (
  3636.   NSSPKIXGeneralName *generalName,
  3637.   NSSArena *arenaOpt
  3638. );
  3639. /*
  3640.  * nssPKIXGeneralName_GetX400Address
  3641.  *
  3642.  * -- fgmr comments --
  3643.  *
  3644.  * The error may be one of the following values:
  3645.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3646.  *  NSS_ERROR_WRONG_CHOICE
  3647.  *  NSS_ERROR_INVALID_ARENA
  3648.  *  NSS_ERROR_NO_MEMORY
  3649.  * 
  3650.  * Return value:
  3651.  *  A valid pointer to an NSSPKIXORAddress upon success
  3652.  *  NULL upon failure
  3653.  */
  3654. NSS_EXTERN NSSPKIXORAddress *
  3655. nssPKIXGeneralName_GetX400Address
  3656. (
  3657.   NSSPKIXGeneralName *generalName,
  3658.   NSSArena *arenaOpt
  3659. );
  3660. /*
  3661.  * nssPKIXGeneralName_GetDirectoryName
  3662.  *
  3663.  * -- fgmr comments --
  3664.  *
  3665.  * The error may be one of the following values:
  3666.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3667.  *  NSS_ERROR_WRONG_CHOICE
  3668.  *  NSS_ERROR_INVALID_ARENA
  3669.  *  NSS_ERROR_NO_MEMORY
  3670.  * 
  3671.  * Return value:
  3672.  *  A valid pointer to an NSSPKIXName upon success
  3673.  *  NULL upon failure
  3674.  */
  3675. NSS_EXTERN NSSPKIXName *
  3676. nssPKIXGeneralName_GetDirectoryName
  3677. (
  3678.   NSSPKIXGeneralName *generalName,
  3679.   NSSArena *arenaOpt
  3680. );
  3681. /*
  3682.  * nssPKIXGeneralName_GetEDIPartyName
  3683.  *
  3684.  * -- fgmr comments --
  3685.  *
  3686.  * The error may be one of the following values:
  3687.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3688.  *  NSS_ERROR_WRONG_CHOICE
  3689.  *  NSS_ERROR_INVALID_ARENA
  3690.  *  NSS_ERROR_NO_MEMORY
  3691.  * 
  3692.  * Return value:
  3693.  *  A valid pointer to an NSSPKIXEDIPartyName upon success
  3694.  *  NULL upon failure
  3695.  */
  3696. NSS_EXTERN NSSPKIXEDIPartyName *
  3697. nssPKIXGeneralName_GetEDIPartyName
  3698. (
  3699.   NSSPKIXGeneralName *generalName,
  3700.   NSSArena *arenaOpt
  3701. );
  3702. /*
  3703.  * nssPKIXGeneralName_GetUniformResourceIdentifier
  3704.  *
  3705.  * -- fgmr comments --
  3706.  *
  3707.  * The error may be one of the following values:
  3708.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3709.  *  NSS_ERROR_WRONG_CHOICE
  3710.  *  NSS_ERROR_INVALID_ARENA
  3711.  *  NSS_ERROR_NO_MEMORY
  3712.  * 
  3713.  * Return value:
  3714.  *  A valid pointer to an NSSUTF8 upon success
  3715.  *  NULL upon failure
  3716.  */
  3717. NSS_EXTERN NSSUTF8 *
  3718. nssPKIXGeneralName_GetUniformResourceIdentifier
  3719. (
  3720.   NSSPKIXGeneralName *generalName,
  3721.   NSSArena *arenaOpt
  3722. );
  3723. /*
  3724.  * nssPKIXGeneralName_GetIPAddress
  3725.  *
  3726.  * -- fgmr comments --
  3727.  *
  3728.  * The error may be one of the following values:
  3729.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3730.  *  NSS_ERROR_WRONG_CHOICE
  3731.  *  NSS_ERROR_INVALID_ARENA
  3732.  *  NSS_ERROR_NO_MEMORY
  3733.  * 
  3734.  * Return value:
  3735.  *  A valid pointer to an NSSItem upon success
  3736.  *  NULL upon failure
  3737.  */
  3738. NSS_EXTERN NSSItem *
  3739. nssPKIXGeneralName_GetIPAddress
  3740. (
  3741.   NSSPKIXGeneralName *generalName,
  3742.   NSSItem *rvOpt,
  3743.   NSSArena *arenaOpt
  3744. );
  3745. /*
  3746.  * nssPKIXGeneralName_GetRegisteredID
  3747.  *
  3748.  * -- fgmr comments --
  3749.  *
  3750.  * The error may be one of the following values:
  3751.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3752.  *  NSS_ERROR_WRONG_CHOICE
  3753.  *  NSS_ERROR_NO_MEMORY
  3754.  * 
  3755.  * Return value:
  3756.  *  A valid pointer to an NSSOID upon success
  3757.  *  NULL upon failure
  3758.  */
  3759. NSS_EXTERN NSSOID *
  3760. nssPKIXGeneralName_GetRegisteredID
  3761. (
  3762.   NSSPKIXGeneralName *generalName
  3763. );
  3764. /*
  3765.  * nssPKIXGeneralName_GetSpecifiedChoice
  3766.  *
  3767.  * -- fgmr comments --
  3768.  *
  3769.  * The error may be one of the following values:
  3770.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3771.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME_CHOICE
  3772.  *  NSS_ERROR_INVALID_ARENA
  3773.  *  NSS_ERROR_NO_MEMORY
  3774.  * 
  3775.  * Return value:
  3776.  *  A valid pointer upon success
  3777.  *  NULL upon failure
  3778.  */
  3779. NSS_EXTERN void *
  3780. nssPKIXGeneralName_GetSpecifiedChoice
  3781. (
  3782.   NSSPKIXGeneralName *generalName,
  3783.   NSSArena *arenaOpt
  3784. );
  3785. /*
  3786.  * nssPKIXGeneralName_Equal
  3787.  *
  3788.  * -- fgmr comments --
  3789.  *
  3790.  * The error may be one of the following values:
  3791.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3792.  * 
  3793.  * Return value:
  3794.  *  PR_TRUE if the two objects have equal values
  3795.  *  PR_FALSE otherwise
  3796.  *  PR_FALSE upon error
  3797.  */
  3798. NSS_EXTERN PRBool
  3799. nssPKIXGeneralName_Equal
  3800. (
  3801.   NSSPKIXGeneralName *generalName1,
  3802.   NSSPKIXGeneralName *generalName2,
  3803.   PRStatus *statusOpt
  3804. );
  3805. /*
  3806.  * nssPKIXGeneralName_Duplicate
  3807.  *
  3808.  * -- fgmr comments --
  3809.  *
  3810.  * The error may be one of the following values:
  3811.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3812.  *  NSS_ERROR_INVALID_ARENA
  3813.  *  NSS_ERROR_NO_MEMORY
  3814.  * 
  3815.  * Return value:
  3816.  *  A valid pointer to an NSSPKIXGeneralName upon success
  3817.  *  NULL upon failure
  3818.  */
  3819. NSS_EXTERN NSSPKIXGeneralName *
  3820. nssPKIXGeneralName_Duplicate
  3821. (
  3822.   NSSPKIXGeneralName *generalName,
  3823.   NSSArena *arenaOpt
  3824. );
  3825. /*
  3826.  * (in pki1 I had specific attribute value gettors here too)
  3827.  *
  3828.  */
  3829. #ifdef DEBUG
  3830. /*
  3831.  * nssPKIXGeneralName_verifyPointer
  3832.  *
  3833.  * This method is only present in debug builds.
  3834.  *
  3835.  * If the specified pointer is a valid pointer to an NSSPKIXGeneralName
  3836.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  3837.  * put an error on the error stack and return PR_FAILURE.
  3838.  *
  3839.  * The error may be one of the following values:
  3840.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3841.  *
  3842.  * Return value:
  3843.  *  PR_SUCCESS if the pointer is valid
  3844.  *  PR_FAILURE if it isn't
  3845.  */
  3846. NSS_EXTERN PRStatus
  3847. nssPKIXGeneralName_verifyPointer
  3848. (
  3849.   NSSPKIXGeneralName *p
  3850. );
  3851. #endif /* DEBUG */
  3852. /*
  3853.  * GeneralNames
  3854.  *
  3855.  * This structure contains a sequence of GeneralName objects.
  3856.  *
  3857.  * From RFC 2459:
  3858.  *
  3859.  *  GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
  3860.  *
  3861.  * The private calls for this type:
  3862.  *
  3863.  *  nssPKIXGeneralNames_Decode
  3864.  *  nssPKIXGeneralNames_Create
  3865.  *  nssPKIXGeneralNames_Destroy
  3866.  *  nssPKIXGeneralNames_Encode
  3867.  *  nssPKIXGeneralNames_GetGeneralNameCount
  3868.  *  nssPKIXGeneralNames_GetGeneralNames
  3869.  *  nssPKIXGeneralNames_SetGeneralNames
  3870.  *  nssPKIXGeneralNames_GetGeneralName
  3871.  *  nssPKIXGeneralNames_SetGeneralName
  3872.  *  nssPKIXGeneralNames_InsertGeneralName
  3873.  *  nssPKIXGeneralNames_AppendGeneralName
  3874.  *  nssPKIXGeneralNames_RemoveGeneralName
  3875.  *  nssPKIXGeneralNames_FindGeneralName
  3876.  *  nssPKIXGeneralNames_Equal
  3877.  *  nssPKIXGeneralNames_Duplicate
  3878.  * 
  3879.  * In debug builds, the following call is available:
  3880.  *
  3881.  *  nssPKIXGeneralNames_verifyPointer
  3882.  *
  3883.  */
  3884. /*
  3885.  * nssPKIXGeneralNames_Decode
  3886.  *
  3887.  * -- fgmr comments --
  3888.  *
  3889.  * The error may be one of the following values:
  3890.  *  NSS_ERROR_INVALID_BER
  3891.  *  NSS_ERROR_NO_MEMORY
  3892.  *  NSS_ERROR_INVALID_ARENA
  3893.  * 
  3894.  * Return value:
  3895.  *  A valid pointer to an NSSPKIXGeneralNames upon success
  3896.  *  NULL upon failure
  3897.  */
  3898. NSS_EXTERN NSSPKIXGeneralNames *
  3899. nssPKIXGeneralNames_Decode
  3900. (
  3901.   NSSArena *arenaOpt,
  3902.   NSSBER *ber
  3903. );
  3904. /*
  3905.  * nssPKIXGeneralNames_Create
  3906.  *
  3907.  * -- fgmr comments --
  3908.  *
  3909.  * The error may be one of the following values:
  3910.  *  NSS_ERROR_NO_MEMORY
  3911.  *  NSS_ERROR_INVALID_ARENA
  3912.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  3913.  * 
  3914.  * Return value:
  3915.  *  A valid pointer to an NSSPKIXGeneralNames upon success
  3916.  *  NULL upon failure
  3917.  */
  3918. NSS_EXTERN NSSPKIXGeneralNames *
  3919. nssPKIXGeneralNames_Create
  3920. (
  3921.   NSSArena *arenaOpt,
  3922.   NSSPKIXGeneralName *generalName1,
  3923.   ...
  3924. );
  3925. /*
  3926.  * nssPKIXGeneralNames_Destroy
  3927.  *
  3928.  * -- fgmr comments --
  3929.  *
  3930.  * The error may be one of the following values:
  3931.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  3932.  * 
  3933.  * Return value:
  3934.  *  PR_SUCCESS upon success
  3935.  *  PR_FAILURE upon failure
  3936.  */
  3937. NSS_EXTERN PRStatus
  3938. nssPKIXGeneralNames_Destroy
  3939. (
  3940.   NSSPKIXGeneralNames *generalNames
  3941. );
  3942. /*
  3943.  * nssPKIXGeneralNames_Encode
  3944.  *
  3945.  * -- fgmr comments --
  3946.  *
  3947.  * The error may be one of the following values:
  3948.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  3949.  *  NSS_ERROR_INVALID_ARENA
  3950.  *  NSS_ERROR_NO_MEMORY
  3951.  * 
  3952.  * Return value:
  3953.  *  A valid NSSBER pointer upon success
  3954.  *  NULL upon failure
  3955.  */
  3956. NSS_EXTERN NSSBER *
  3957. nssPKIXGeneralNames_Encode
  3958. (
  3959.   NSSPKIXGeneralNames *generalNames,
  3960.   NSSASN1EncodingType encoding,
  3961.   NSSBER *rvOpt,
  3962.   NSSArena *arenaOpt
  3963. );
  3964. /*
  3965.  * nssPKIXGeneralNames_GetGeneralNameCount
  3966.  *
  3967.  * -- fgmr comments --
  3968.  *
  3969.  * The error may be one of the following values:
  3970.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  3971.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  3972.  * 
  3973.  * Return value:
  3974.  *  Nonnegative integer upon success
  3975.  *  -1 upon failure.
  3976.  */
  3977. NSS_EXTERN PRInt32
  3978. nssPKIXGeneralNames_GetGeneralNameCount
  3979. (
  3980.   NSSPKIXGeneralNames *generalNames
  3981. );
  3982. /*
  3983.  * nssPKIXGeneralNames_GetGeneralNames
  3984.  *
  3985.  * -- fgmr comments --
  3986.  *
  3987.  * The error may be one of the following values:
  3988.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  3989.  *  NSS_ERROR_INVALID_ARENA
  3990.  *  NSS_ERROR_NO_MEMORY
  3991.  *  NSS_ERROR_ARRAY_TOO_SMALL
  3992.  * 
  3993.  * Return value:
  3994.  *  A valid pointer to an array of NSSPKIXGeneralName pointers upon
  3995.  *      success
  3996.  *  NULL upon failure
  3997.  */
  3998. NSS_EXTERN NSSPKIXGeneralName **
  3999. nssPKIXGeneralNames_GetGeneralNames
  4000. (
  4001.   NSSPKIXGeneralNames *generalNames,
  4002.   NSSPKIXGeneralName *rvOpt[],
  4003.   PRInt32 limit,
  4004.   NSSArena *arenaOpt
  4005. );
  4006. /*
  4007.  * nssPKIXGeneralNames_SetGeneralNames
  4008.  *
  4009.  * -- fgmr comments --
  4010.  *
  4011.  * The error may be one of the following values:
  4012.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4013.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  4014.  *  NSS_ERROR_NO_MEMORY
  4015.  * 
  4016.  * Return value:
  4017.  *  PR_SUCCESS upon success
  4018.  *  PR_FAILURE upon failure
  4019.  */
  4020. NSS_EXTERN PRStatus
  4021. nssPKIXGeneralNames_SetGeneralNames
  4022. (
  4023.   NSSPKIXGeneralNames *generalNames,
  4024.   NSSPKIXGeneralName *generalName[],
  4025.   PRInt32 count
  4026. );
  4027. /*
  4028.  * nssPKIXGeneralNames_GetGeneralName
  4029.  *
  4030.  * -- fgmr comments --
  4031.  *
  4032.  * The error may be one of the following values:
  4033.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4034.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  4035.  *  NSS_ERROR_NO_MEMORY
  4036.  *  NSS_ERROR_INVALID_ARENA
  4037.  * 
  4038.  * Return value:
  4039.  *  A valid pointer to an NSSPKIXGeneralName upon success
  4040.  *  NULL upon failure
  4041.  */
  4042. NSS_EXTERN NSSPKIXGeneralName *
  4043. nssPKIXGeneralNames_GetGeneralName
  4044. (
  4045.   NSSPKIXGeneralNames *generalNames,
  4046.   PRInt32 i,
  4047.   NSSArena *arenaOpt
  4048. );
  4049. /*
  4050.  * nssPKIXGeneralNames_SetGeneralName
  4051.  *
  4052.  * -- fgmr comments --
  4053.  *
  4054.  * The error may be one of the following values:
  4055.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4056.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  4057.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  4058.  *  NSS_ERROR_NO_MEMORY
  4059.  * 
  4060.  * Return value:
  4061.  *  PR_SUCCESS upon success
  4062.  *  PR_FAILURE upon failure
  4063.  */
  4064. NSS_EXTERN PRStatus
  4065. nssPKIXGeneralNames_SetGeneralName
  4066. (
  4067.   NSSPKIXGeneralNames *generalNames,
  4068.   PRInt32 i,
  4069.   NSSPKIXGeneralName *generalName
  4070. );
  4071. /*
  4072.  * nssPKIXGeneralNames_InsertGeneralName
  4073.  *
  4074.  * -- fgmr comments --
  4075.  *
  4076.  * The error may be one of the following values:
  4077.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4078.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  4079.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  4080.  *  NSS_ERROR_NO_MEMORY
  4081.  * 
  4082.  * Return value:
  4083.  *  PR_SUCCESS upon success
  4084.  *  PR_FAILURE upon failure
  4085.  */
  4086. NSS_EXTERN PRStatus
  4087. nssPKIXGeneralNames_InsertGeneralName
  4088. (
  4089.   NSSPKIXGeneralNames *generalNames,
  4090.   PRInt32 i,
  4091.   NSSPKIXGeneralName *generalName
  4092. );
  4093. /*
  4094.  * nssPKIXGeneralNames_AppendGeneralName
  4095.  *
  4096.  * -- fgmr comments --
  4097.  *
  4098.  * The error may be one of the following values:
  4099.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4100.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  4101.  *  NSS_ERROR_NO_MEMORY
  4102.  * 
  4103.  * Return value:
  4104.  *  PR_SUCCESS upon success
  4105.  *  PR_FAILURE upon failure
  4106.  */
  4107. NSS_EXTERN PRStatus
  4108. nssPKIXGeneralNames_AppendGeneralName
  4109. (
  4110.   NSSPKIXGeneralNames *generalNames,
  4111.   NSSPKIXGeneralName *generalName
  4112. );
  4113. /*
  4114.  * nssPKIXGeneralNames_RemoveGeneralName
  4115.  *
  4116.  * -- fgmr comments --
  4117.  *
  4118.  * The error may be one of the following values:
  4119.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4120.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  4121.  * 
  4122.  * Return value:
  4123.  *  PR_SUCCESS upon success
  4124.  *  PR_FAILURE upon failure
  4125.  */
  4126. NSS_EXTERN PRStatus
  4127. nssPKIXGeneralNames_RemoveGeneralName
  4128. (
  4129.   NSSPKIXGeneralNames *generalNames,
  4130.   PRInt32 i
  4131. );
  4132. /*
  4133.  * nssPKIXGeneralNames_FindGeneralName
  4134.  *
  4135.  * -- fgmr comments --
  4136.  *
  4137.  * The error may be one of the following values:
  4138.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4139.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAME
  4140.  *  NSS_ERROR_NOT_FOUND
  4141.  *  NSS_ERROR_VALUE_OUT_OF_RANGE
  4142.  * 
  4143.  * Return value:
  4144.  *  The index of the specified policy mapping upon success
  4145.  *  -1 upon failure.
  4146.  */
  4147. NSS_EXTERN PRInt32
  4148. nssPKIXGeneralNames_FindGeneralName
  4149. (
  4150.   NSSPKIXGeneralNames *generalNames,
  4151.   NSSPKIXGeneralName *generalName
  4152. );
  4153. /*
  4154.  * nssPKIXGeneralNames_Equal
  4155.  *
  4156.  * -- fgmr comments --
  4157.  *
  4158.  * The error may be one of the following values:
  4159.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4160.  * 
  4161.  * Return value:
  4162.  *  PR_TRUE if the two objects have equal values
  4163.  *  PR_FALSE otherwise
  4164.  *  PR_FALSE upon error
  4165.  */
  4166. NSS_EXTERN PRBool
  4167. nssPKIXGeneralNames_Equal
  4168. (
  4169.   NSSPKIXGeneralNames *generalNames1,
  4170.   NSSPKIXGeneralNames *generalNames2,
  4171.   PRStatus *statusOpt
  4172. );
  4173. /*
  4174.  * nssPKIXGeneralNames_Duplicate
  4175.  *
  4176.  * -- fgmr comments --
  4177.  *
  4178.  * The error may be one of the following values:
  4179.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4180.  *  NSS_ERROR_INVALID_ARENA
  4181.  *  NSS_ERROR_NO_MEMORY
  4182.  * 
  4183.  * Return value:
  4184.  *  A valid pointer to an NSSPKIXGeneralNames upon success
  4185.  *  NULL upon failure
  4186.  */
  4187. NSS_EXTERN NSSPKIXGeneralNames *
  4188. nssPKIXGeneralNames_Duplicate
  4189. (
  4190.   NSSPKIXGeneralNames *generalNames,
  4191.   NSSArena *arenaOpt
  4192. );
  4193. #ifdef DEBUG
  4194. /*
  4195.  * nssPKIXGeneralNames_verifyPointer
  4196.  *
  4197.  * This method is only present in debug builds.
  4198.  *
  4199.  * If the specified pointer is a valid pointer to an NSSPKIXGeneralNames
  4200.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  4201.  * put an error on the error stack and return PR_FAILURE.
  4202.  *
  4203.  * The error may be one of the following values:
  4204.  *  NSS_ERROR_INVALID_PKIX_GENERAL_NAMES
  4205.  *
  4206.  * Return value:
  4207.  *  PR_SUCCESS if the pointer is valid
  4208.  *  PR_FAILURE if it isn't
  4209.  */
  4210. NSS_EXTERN PRStatus
  4211. nssPKIXGeneralNames_verifyPointer
  4212. (
  4213.   NSSPKIXGeneralNames *p
  4214. );
  4215. #endif /* DEBUG */
  4216. /*
  4217.  * AnotherName
  4218.  *
  4219.  * -- fgmr comments --
  4220.  *
  4221.  * From RFC 2459:
  4222.  *
  4223.  *  AnotherName ::= SEQUENCE {
  4224.  *       type-id    OBJECT IDENTIFIER,
  4225.  *       value      [0] EXPLICIT ANY DEFINED BY type-id }
  4226.  *
  4227.  * The private calls for this type:
  4228.  *
  4229.  *  nssPKIXAnotherName_Decode
  4230.  *  nssPKIXAnotherName_Create
  4231.  *  nssPKIXAnotherName_Destroy
  4232.  *  nssPKIXAnotherName_Encode
  4233.  *  nssPKIXAnotherName_GetTypeId
  4234.  *  nssPKIXAnotherName_SetTypeId
  4235.  *  nssPKIXAnotherName_GetValue
  4236.  *  nssPKIXAnotherName_SetValue
  4237.  *  nssPKIXAnotherName_Equal
  4238.  *  nssPKIXAnotherName_Duplicate
  4239.  * 
  4240.  * In debug builds, the following call is available:
  4241.  *
  4242.  *  nssPKIXAnotherName_verifyPointer
  4243.  *
  4244.  */
  4245. /*
  4246.  * nssPKIXAnotherName_Decode
  4247.  *
  4248.  * -- fgmr comments --
  4249.  *
  4250.  * The error may be one of the following values:
  4251.  *  NSS_ERROR_INVALID_BER
  4252.  *  NSS_ERROR_NO_MEMORY
  4253.  *  NSS_ERROR_INVALID_ARENA
  4254.  * 
  4255.  * Return value:
  4256.  *  A valid pointer to an NSSPKIXAnotherName upon success
  4257.  *  NULL upon failure
  4258.  */
  4259. NSS_EXTERN NSSPKIXAnotherName *
  4260. nssPKIXAnotherName_Decode
  4261. (
  4262.   NSSArena *arenaOpt,
  4263.   NSSBER *ber
  4264. );
  4265. /*
  4266.  * nssPKIXAnotherName_Create
  4267.  *
  4268.  * -- fgmr comments --
  4269.  *
  4270.  * The error may be one of the following values:
  4271.  *  NSS_ERROR_NO_MEMORY
  4272.  *  NSS_ERROR_INVALID_ARENA
  4273.  *  NSS_ERROR_INVALID_OID
  4274.  *  NSS_ERROR_INVALID_ITEM
  4275.  * 
  4276.  * Return value:
  4277.  *  A valid pointer to an NSSPKIXAnotherName upon success
  4278.  *  NULL upon failure
  4279.  */
  4280. NSS_EXTERN NSSPKIXAnotherName *
  4281. nssPKIXAnotherName_Create
  4282. (
  4283.   NSSArena *arenaOpt,
  4284.   NSSOID *typeId,
  4285.   NSSItem *value
  4286. );
  4287. /*
  4288.  * nssPKIXAnotherName_Destroy
  4289.  *
  4290.  * -- fgmr comments --
  4291.  *
  4292.  * The error may be one of the following values:
  4293.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4294.  * 
  4295.  * Return value:
  4296.  *  PR_SUCCESS upon success
  4297.  *  PR_FAILURE upon failure
  4298.  */
  4299. NSS_EXTERN PRStatus
  4300. nssPKIXAnotherName_Destroy
  4301. (
  4302.   NSSPKIXAnotherName *anotherName
  4303. );
  4304. /*
  4305.  * nssPKIXAnotherName_Encode
  4306.  *
  4307.  * -- fgmr comments --
  4308.  *
  4309.  * The error may be one of the following values:
  4310.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4311.  *  NSS_ERROR_INVALID_ARENA
  4312.  *  NSS_ERROR_NO_MEMORY
  4313.  * 
  4314.  * Return value:
  4315.  *  A valid NSSBER pointer upon success
  4316.  *  NULL upon failure
  4317.  */
  4318. NSS_EXTERN NSSBER *
  4319. nssPKIXAnotherName_Encode
  4320. (
  4321.   NSSPKIXAnotherName *anotherName,
  4322.   NSSASN1EncodingType encoding,
  4323.   NSSBER *rvOpt,
  4324.   NSSArena *arenaOpt
  4325. );
  4326. /*
  4327.  * nssPKIXAnotherName_GetTypeId
  4328.  *
  4329.  * -- fgmr comments --
  4330.  *
  4331.  * The error may be one of the following values:
  4332.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4333.  *  NSS_ERROR_NO_MEMORY
  4334.  * 
  4335.  * Return value:
  4336.  *  A valid pointer to an NSSOID upon success
  4337.  *  NULL upon failure
  4338.  */
  4339. NSS_EXTERN NSSOID *
  4340. nssPKIXAnotherName_GetTypeId
  4341. (
  4342.   NSSPKIXAnotherName *anotherName
  4343. );
  4344. /*
  4345.  * nssPKIXAnotherName_SetTypeId
  4346.  *
  4347.  * -- fgmr comments --
  4348.  *
  4349.  * The error may be one of the following values:
  4350.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4351.  *  NSS_ERROR_INVALID_OID
  4352.  *  NSS_ERROR_NO_MEMORY
  4353.  * 
  4354.  * Return value:
  4355.  *  PR_SUCCESS upon success
  4356.  *  PR_FAILURE upon failure
  4357.  */
  4358. NSS_EXTERN PRStatus
  4359. nssPKIXAnotherName_SetTypeId
  4360. (
  4361.   NSSPKIXAnotherName *anotherName,
  4362.   NSSOID *typeId
  4363. );
  4364. /*
  4365.  * nssPKIXAnotherName_GetValue
  4366.  *
  4367.  * -- fgmr comments --
  4368.  *
  4369.  * The error may be one of the following values:
  4370.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4371.  *  NSS_ERROR_NO_MEMORY
  4372.  *  NSS_ERROR_INVALID_ARENA
  4373.  * 
  4374.  * Return value:
  4375.  *  A valid pointer to an NSSItem upon success
  4376.  *  NULL upon failure
  4377.  */
  4378. NSS_EXTERN NSSItem *
  4379. nssPKIXAnotherName_GetValue
  4380. (
  4381.   NSSPKIXAnotherName *anotherName,
  4382.   NSSItem *rvOpt,
  4383.   NSSArena *arenaOpt
  4384. );
  4385. /*
  4386.  * nssPKIXAnotherName_SetValue
  4387.  *
  4388.  * -- fgmr comments --
  4389.  *
  4390.  * The error may be one of the following values:
  4391.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4392.  *  NSS_ERROR_NO_MEMORY
  4393.  *  NSS_ERROR_INVALID_ITEM
  4394.  * 
  4395.  * Return value:
  4396.  *  PR_SUCCESS upon success
  4397.  *  PR_FAILURE upon failure
  4398.  */
  4399. NSS_EXTERN PRStatus
  4400. nssPKIXAnotherName_SetValue
  4401. (
  4402.   NSSPKIXAnotherName *anotherName,
  4403.   NSSItem *value
  4404. );
  4405. /*
  4406.  * nssPKIXAnotherName_Equal
  4407.  *
  4408.  * -- fgmr comments --
  4409.  *
  4410.  * The error may be one of the following values:
  4411.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4412.  * 
  4413.  * Return value:
  4414.  *  PR_TRUE if the two objects have equal values
  4415.  *  PR_FALSE otherwise
  4416.  *  PR_FALSE upon error
  4417.  */
  4418. NSS_EXTERN PRBool
  4419. nssPKIXAnotherName_Equal
  4420. (
  4421.   NSSPKIXAnotherName *anotherName1,
  4422.   NSSPKIXAnotherName *anotherName2,
  4423.   PRStatus *statusOpt
  4424. );
  4425. /*
  4426.  * nssPKIXAnotherName_Duplicate
  4427.  *
  4428.  * -- fgmr comments --
  4429.  *
  4430.  * The error may be one of the following values:
  4431.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4432.  *  NSS_ERROR_INVALID_ARENA
  4433.  *  NSS_ERROR_NO_MEMORY
  4434.  * 
  4435.  * Return value:
  4436.  *  A valid pointer to an NSSPKIXAnotherName upon success
  4437.  *  NULL upon failure
  4438.  */
  4439. NSS_EXTERN NSSPKIXAnotherName *
  4440. nssPKIXAnotherName_Duplicate
  4441. (
  4442.   NSSPKIXAnotherName *anotherName,
  4443.   NSSArena *arenaOpt
  4444. );
  4445. #ifdef DEBUG
  4446. /*
  4447.  * nssPKIXAnotherName_verifyPointer
  4448.  *
  4449.  * This method is only present in debug builds.
  4450.  *
  4451.  * If the specified pointer is a valid pointer to an NSSPKIXAnotherName
  4452.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  4453.  * put an error on the error stack and return PR_FAILURE.
  4454.  *
  4455.  * The error may be one of the following values:
  4456.  *  NSS_ERROR_INVALID_PKIX_ANOTHER_NAME
  4457.  *
  4458.  * Return value:
  4459.  *  PR_SUCCESS if the pointer is valid
  4460.  *  PR_FAILURE if it isn't
  4461.  */
  4462. NSS_EXTERN PRStatus
  4463. nssPKIXAnotherName_verifyPointer
  4464. (
  4465.   NSSPKIXAnotherName *p
  4466. );
  4467. #endif /* DEBUG */
  4468. /*
  4469.  * EDIPartyName
  4470.  *
  4471.  * -- fgmr comments --
  4472.  *
  4473.  * From RFC 2459:
  4474.  *
  4475.  *
  4476.  *  EDIPartyName ::= SEQUENCE {
  4477.  *       nameAssigner            [0]     DirectoryString OPTIONAL,
  4478.  *       partyName               [1]     DirectoryString }
  4479.  *
  4480.  * The private calls for this type:
  4481.  *
  4482.  *  nssPKIXEDIPartyName_Decode
  4483.  *  nssPKIXEDIPartyName_Create
  4484.  *  nssPKIXEDIPartyName_Destroy
  4485.  *  nssPKIXEDIPartyName_Encode
  4486.  *  nssPKIXEDIPartyName_HasNameAssigner
  4487.  *  nssPKIXEDIPartyName_GetNameAssigner
  4488.  *  nssPKIXEDIPartyName_SetNameAssigner
  4489.  *  nssPKIXEDIPartyName_RemoveNameAssigner
  4490.  *  nssPKIXEDIPartyName_GetPartyName
  4491.  *  nssPKIXEDIPartyName_SetPartyName
  4492.  *  nssPKIXEDIPartyName_Equal
  4493.  *  nssPKIXEDIPartyName_Duplicate
  4494.  * 
  4495.  * In debug builds, the following call is available:
  4496.  *
  4497.  *  nssPKIXEDIPartyName_verifyPointer
  4498.  *
  4499.  */
  4500. /*
  4501.  * nssPKIXEDIPartyName_Decode
  4502.  *
  4503.  * -- fgmr comments --
  4504.  *
  4505.  * The error may be one of the following values:
  4506.  *  NSS_ERROR_INVALID_BER
  4507.  *  NSS_ERROR_NO_MEMORY
  4508.  *  NSS_ERROR_INVALID_ARENA
  4509.  * 
  4510.  * Return value:
  4511.  *  A valid pointer to an NSSPKIXEDIPartyName upon success
  4512.  *  NULL upon failure
  4513.  */
  4514. NSS_EXTERN NSSPKIXEDIPartyName *
  4515. nssPKIXEDIPartyName_Decode
  4516. (
  4517.   NSSArena *arenaOpt,
  4518.   NSSBER *ber
  4519. );
  4520. /*
  4521.  * nssPKIXEDIPartyName_Create
  4522.  *
  4523.  * -- fgmr comments --
  4524.  *
  4525.  * The error may be one of the following values:
  4526.  *  NSS_ERROR_NO_MEMORY
  4527.  *  NSS_ERROR_INVALID_ARENA
  4528.  *  NSS_ERROR_INVALID_STRING
  4529.  * 
  4530.  * Return value:
  4531.  *  A valid pointer to an NSSPKIXEDIPartyName upon success
  4532.  *  NULL upon failure
  4533.  */
  4534. NSS_EXTERN NSSPKIXEDIPartyName *
  4535. nssPKIXEDIPartyName_Create
  4536. (
  4537.   NSSArena *arenaOpt,
  4538.   NSSUTF8 *nameAssignerOpt,
  4539.   NSSUTF8 *partyName
  4540. );
  4541. /*
  4542.  * nssPKIXEDIPartyName_Destroy
  4543.  *
  4544.  * -- fgmr comments --
  4545.  *
  4546.  * The error may be one of the following values:
  4547.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4548.  * 
  4549.  * Return value:
  4550.  *  PR_SUCCESS upon success
  4551.  *  PR_FAILURE upon failure
  4552.  */
  4553. NSS_EXTERN PRStatus
  4554. nssPKIXEDIPartyName_Destroy
  4555. (
  4556.   NSSPKIXEDIPartyName *ediPartyName
  4557. );
  4558. /*
  4559.  * nssPKIXEDIPartyName_Encode
  4560.  *
  4561.  * -- fgmr comments --
  4562.  *
  4563.  * The error may be one of the following values:
  4564.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4565.  *  NSS_ERROR_INVALID_ARENA
  4566.  *  NSS_ERROR_NO_MEMORY
  4567.  * 
  4568.  * Return value:
  4569.  *  A valid NSSBER pointer upon success
  4570.  *  NULL upon failure
  4571.  */
  4572. NSS_EXTERN NSSBER *
  4573. nssPKIXEDIPartyName_Encode
  4574. (
  4575.   NSSPKIXEDIPartyName *ediPartyName,
  4576.   NSSASN1EncodingType encoding,
  4577.   NSSBER *rvOpt,
  4578.   NSSArena *arenaOpt
  4579. );
  4580. /*
  4581.  * nssPKIXEDIPartyName_HasNameAssigner
  4582.  *
  4583.  * -- fgmr comments --
  4584.  *
  4585.  * The error may be one of the following values:
  4586.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4587.  * 
  4588.  * Return value:
  4589.  *  PR_TRUE if it has one
  4590.  *  PR_FALSE if it doesn't
  4591.  *  PR_FALSE upon failure
  4592.  */
  4593. NSS_EXTERN PRBool
  4594. nssPKIXEDIPartyName_HasNameAssigner
  4595. (
  4596.   NSSPKIXEDIPartyName *ediPartyName
  4597. );
  4598. /*
  4599.  * nssPKIXEDIPartyName_GetNameAssigner
  4600.  *
  4601.  * -- fgmr comments --
  4602.  *
  4603.  * The error may be one of the following values:
  4604.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4605.  *  NSS_ERROR_INVALID_ARENA
  4606.  *  NSS_ERROR_NO_MEMORY
  4607.  *  NSS_ERROR_HAS_NO_NAME_ASSIGNER
  4608.  * 
  4609.  * Return value:
  4610.  *  A valid pointer to an NSSUTF8 string upon success
  4611.  *  NULL upon failure
  4612.  */
  4613. NSS_EXTERN NSSUTF8 *
  4614. nssPKIXEDIPartyName_GetNameAssigner
  4615. (
  4616.   NSSPKIXEDIPartyName *ediPartyName,
  4617.   NSSArena *arenaOpt
  4618. );
  4619. /*
  4620.  * nssPKIXEDIPartyName_SetNameAssigner
  4621.  *
  4622.  * -- fgmr comments --
  4623.  *
  4624.  * The error may be one of the following values:
  4625.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4626.  *  NSS_ERROR_NO_MEMORY
  4627.  *  NSS_ERROR_INVALID_STRING
  4628.  * 
  4629.  * Return value:
  4630.  *  PR_SUCCESS upon success
  4631.  *  PR_FAILURE upon failure
  4632.  */
  4633. NSS_EXTERN PRStatus
  4634. nssPKIXEDIPartyName_SetNameAssigner
  4635. (
  4636.   NSSPKIXEDIPartyName *ediPartyName,
  4637.   NSSUTF8 *nameAssigner
  4638. );
  4639. /*
  4640.  * nssPKIXEDIPartyName_RemoveNameAssigner
  4641.  *
  4642.  * -- fgmr comments --
  4643.  *
  4644.  * The error may be one of the following values:
  4645.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4646.  *  NSS_ERROR_HAS_NO_NAME_ASSIGNER
  4647.  * 
  4648.  * Return value:
  4649.  *  PR_SUCCESS upon success
  4650.  *  PR_FAILURE upon failure
  4651.  */
  4652. NSS_EXTERN PRStatus
  4653. nssPKIXEDIPartyName_RemoveNameAssigner
  4654. (
  4655.   NSSPKIXEDIPartyName *ediPartyName
  4656. );
  4657. /*
  4658.  * nssPKIXEDIPartyName_GetPartyName
  4659.  *
  4660.  * -- fgmr comments --
  4661.  *
  4662.  * The error may be one of the following values:
  4663.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4664.  *  NSS_ERROR_INVALID_ARENA
  4665.  *  NSS_ERROR_NO_MEMORY
  4666.  * 
  4667.  * Return value:
  4668.  *  A valid pointer to an NSSUTF8 string upon success
  4669.  *  NULL upon failure
  4670.  */
  4671. NSS_EXTERN NSSUTF8 *
  4672. nssPKIXEDIPartyName_GetPartyName
  4673. (
  4674.   NSSPKIXEDIPartyName *ediPartyName,
  4675.   NSSArena *arenaOpt
  4676. );
  4677. /*
  4678.  * nssPKIXEDIPartyName_SetPartyName
  4679.  *
  4680.  * -- fgmr comments --
  4681.  *
  4682.  * The error may be one of the following values:
  4683.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4684.  *  NSS_ERROR_NO_MEMORY
  4685.  *  NSS_ERROR_INVALID_STRING
  4686.  * 
  4687.  * Return value:
  4688.  *  PR_SUCCESS upon success
  4689.  *  PR_FAILURE upon failure
  4690.  */
  4691. NSS_EXTERN PRStatus
  4692. nssPKIXEDIPartyName_SetPartyName
  4693. (
  4694.   NSSPKIXEDIPartyName *ediPartyName,
  4695.   NSSUTF8 *partyName
  4696. );
  4697. /*
  4698.  * nssPKIXEDIPartyName_Equal
  4699.  *
  4700.  * -- fgmr comments --
  4701.  *
  4702.  * The error may be one of the following values:
  4703.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4704.  * 
  4705.  * Return value:
  4706.  *  PR_TRUE if the two objects have equal values
  4707.  *  PR_FALSE otherwise
  4708.  *  PR_FALSE upon error
  4709.  */
  4710. NSS_EXTERN PRBool
  4711. nssPKIXEDIPartyName_Equal
  4712. (
  4713.   NSSPKIXEDIPartyName *ediPartyName1,
  4714.   NSSPKIXEDIPartyName *ediPartyName2,
  4715.   PRStatus *statusOpt
  4716. );
  4717. /*
  4718.  * nssPKIXEDIPartyName_Duplicate
  4719.  *
  4720.  * -- fgmr comments --
  4721.  *
  4722.  * The error may be one of the following values:
  4723.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4724.  *  NSS_ERROR_INVALID_ARENA
  4725.  *  NSS_ERROR_NO_MEMORY
  4726.  * 
  4727.  * Return value:
  4728.  *  A valid pointer to an NSSPKIXEDIPartyName upon success
  4729.  *  NULL upon failure
  4730.  */
  4731. NSS_EXTERN NSSPKIXEDIPartyName *
  4732. nssPKIXEDIPartyName_Duplicate
  4733. (
  4734.   NSSPKIXEDIPartyName *ediPartyName,
  4735.   NSSArena *arenaOpt
  4736. );
  4737. #ifdef DEBUG
  4738. /*
  4739.  * nssPKIXEDIPartyName_verifyPointer
  4740.  *
  4741.  * This method is only present in debug builds.
  4742.  *
  4743.  * If the specified pointer is a valid pointer to an NSSPKIXEDIPartyName
  4744.  * object, this routine will return PR_SUCCESS.  Otherwise, it will 
  4745.  * put an error on the error stack and return PR_FAILURE.
  4746.  *
  4747.  * The error may be one of the following values:
  4748.  *  NSS_ERROR_INVALID_PKIX_EDI_PARTY_NAME
  4749.  *
  4750.  * Return value:
  4751.  *  PR_SUCCESS if the pointer is valid
  4752.  *  PR_FAILURE if it isn't
  4753.  */
  4754. NSS_EXTERN PRStatus
  4755. nssPKIXEDIPartyName_verifyPointer
  4756. (
  4757.   NSSPKIXEDIPartyName *p
  4758. );
  4759. #endif /* DEBUG */
  4760. /*
  4761.  * SubjectDirectoryAttributes
  4762.  *
  4763.  * -- fgmr comments --
  4764.  *
  4765.  * From RFC 2459:
  4766.  *
  4767.  *  SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
  4768.  *
  4769.  * The private calls for this type:
  4770.  *
  4771.  *  nssPKIXSubjectDirectoryAttributes_Decode
  4772.  *  nssPKIXSubjectDirectoryAttributes_Create
  4773.  *  nssPKIXSubjectDirectoryAttributes_Destroy
  4774.  *  nssPKIXSubjectDirectoryAttributes_Encode
  4775.  *  nssPKIXSubjectDirectoryAttributes_GetAttributeCount
  4776.  *  nssPKIXSubjectDirectoryAttributes_GetAttributes
  4777.  *  nssPKIXSubjectDirectoryAttributes_SetAttributes
  4778.  *  nssPKIXSubjectDirectoryAttributes_GetAttribute
  4779.  *  nssPKIXSubjectDirectoryAttributes_SetAttribute