ProcurationSyntax (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.asn1.isismtt.x509

## Class ProcurationSyntax

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.isismtt.x509.ProcurationSyntax

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class ProcurationSyntax
      extends ASN1Object

  Attribute to indicate that the certificate holder may sign in the name of a third person.

  ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the name of the person who is represented (subcomponent thirdPerson) or a reference to his/her base certificate (in the component signingFor, subcomponent certRef), furthermore the optional components country and typeSubstitution to indicate the country whose laws apply, and respectively the type of procuration (e.g. manager, procuration, custody).

  ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only contain: - RFC3039 attributes, except pseudonym (countryName, commonName, surname, givenName, serialNumber, organizationName, organizationalUnitName, stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship, countryOfResidence and NameAtBirth).

                     ProcurationSyntax ::= SEQUENCE {
                       country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
                       typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
                       signingFor [3] EXPLICIT SigningFor
                     }

                     SigningFor ::= CHOICE
                     {
                       thirdPerson GeneralName,
                       certRef IssuerSerial
                     }

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProcurationSyntax(java.lang.String country, DirectoryString typeOfSubstitution, GeneralName thirdPerson)` Constructor from a given details.
    `ProcurationSyntax(java.lang.String country, DirectoryString typeOfSubstitution, IssuerSerial certRef)` Constructor from a given details.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `IssuerSerial` | `getCertRef()`
    `java.lang.String` | `getCountry()`
    `static ProcurationSyntax` | `getInstance(java.lang.Object obj)`
    `GeneralName` | `getThirdPerson()`
    `DirectoryString` | `getTypeOfSubstitution()`
    `ASN1Primitive` | `toASN1Primitive()` Produce an object suitable for an ASN1OutputStream.

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Object

      `encodeTo, encodeTo, equals, getEncoded, getEncoded, hasEncodedTagValue, hashCode`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ProcurationSyntax

          public ProcurationSyntax(java.lang.String country,
                                   DirectoryString typeOfSubstitution,
                                   IssuerSerial certRef)

      Constructor from a given details.

      Either `generalName` or `certRef` MUST be `null`.

      Parameters:
        `country` - The country code whose laws apply.
        `typeOfSubstitution` - The type of procuration.
        `certRef` - Reference to certificate of the person who is represented.

    - #### ProcurationSyntax

          public ProcurationSyntax(java.lang.String country,
                                   DirectoryString typeOfSubstitution,
                                   GeneralName thirdPerson)

      Constructor from a given details.

      Either `generalName` or `certRef` MUST be `null`.

      Parameters:
        `country` - The country code whose laws apply.
        `typeOfSubstitution` - The type of procuration.
        `thirdPerson` - The GeneralName of the person who is represented.

  - ### Method Detail

    - #### getInstance

          public static ProcurationSyntax getInstance(java.lang.Object obj)

    - #### getCountry

          public java.lang.String getCountry()

    - #### getTypeOfSubstitution

          public DirectoryString getTypeOfSubstitution()

    - #### getThirdPerson

          public GeneralName getThirdPerson()

    - #### getCertRef

          public IssuerSerial getCertRef()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Produce an object suitable for an ASN1OutputStream.

      Returns:

                         ProcurationSyntax ::= SEQUENCE {
                           country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
                           typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
                           signingFor [3] EXPLICIT SigningFor
                         }

                         SigningFor ::= CHOICE
                         {
                           thirdPerson GeneralName,
                           certRef IssuerSerial
                         }

      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a DERObject