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

CA认证

开发平台:

WINDOWS

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