Top Description Fields Constructors Methods
org.bouncycastle.tls

public Class CertificateRequest

extends Object
Class Inheritance
Imports
java.io.ByteArrayInputStream, .IOException, .InputStream, .OutputStream, java.util.Hashtable, .Vector, org.bouncycastle.asn1.ASN1Encoding, .ASN1Primitive, org.bouncycastle.asn1.x500.X500Name, org.bouncycastle.util.Arrays

Parsing and encoding of a CertificateRequest struct from RFC 4346:
struct {
    ClientCertificateType certificate_types<1..2^8-1>;
    DistinguishedName certificate_authorities<3..2^16-1>;
} CertificateRequest;
Updated for RFC 5246:
struct {
    ClientCertificateType certificate_types<1..2^8-1>;
    SignatureAndHashAlgorithm supported_signature_algorithms<2^16-1>;
    DistinguishedName certificate_authorities<0..2^16-1>;
} CertificateRequest;
Revised for RFC 8446:
struct {
    opaque certificate_request_context<0..2^8-1>;
    Extension extensions<2..2^16-1>;
} CertificateRequest;
See Also
ClientCertificateType, X500Name

Field Summary

Modifier and TypeField and Description
protected final Vector<E>
protected final byte[]
protected final short[]
protected final Vector<E>
protected final Vector<E>

Constructor Summary

AccessConstructor and Description
public
CertificateRequest(short[]
see ClientCertificateType for valid constants.
certificateTypes
,
Vector<E> supportedSignatureAlgorithms, Vector<E> certificateAuthorities)

public
CertificateRequest(byte[] certificateRequestContext, Vector<E> supportedSignatureAlgorithms, Vector<E> supportedSignatureAlgorithmsCert, Vector<E> certificateAuthorities)

private
CertificateRequest(byte[] certificateRequestContext, short[] certificateTypes, Vector<E> supportedSignatureAlgorithms, Vector<E> supportedSignatureAlgorithmsCert, Vector<E> certificateAuthorities)

Method Summary

Modifier and TypeMethod and Description
private static Vector<E>
checkSupportedSignatureAlgorithms(Vector<E> supportedSignatureAlgorithms, short alertDescription)

public void
encode(TlsContext
the TlsContext of the current connection.
context
,
OutputStream
the OutputStream to encode to.
output
)

Encode this CertificateRequest to an OutputStream.

public Vector<E>
public byte[]
public short[]

Returns:

an array of certificate types
getCertificateTypes
()

public Vector<E>

Returns:

a Vector of SignatureAndHashAlgorithm (or null before TLS 1.2).
getSupportedSignatureAlgorithms
()

public Vector<E>

Returns:

an optional Vector of SignatureAndHashAlgorithm. May be non-null from TLS 1.3 onwards.
getSupportedSignatureAlgorithmsCert
()

public boolean
hasCertificateRequestContext(byte[] certificateRequestContext)

public static CertificateRequest

Returns:

a CertificateRequest object.
parse
(TlsContext
the TlsContext of the current connection.
context
,
InputStream
the InputStream to parse from.
input
)

Parse a CertificateRequest from an InputStream.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

certificateAuthoritiesback to summary
protected final Vector<E> certificateAuthorities
certificateRequestContextback to summary
protected final byte[] certificateRequestContext
certificateTypesback to summary
protected final short[] certificateTypes
supportedSignatureAlgorithmsback to summary
protected final Vector<E> supportedSignatureAlgorithms
supportedSignatureAlgorithmsCertback to summary
protected final Vector<E> supportedSignatureAlgorithmsCert

Constructor Detail

CertificateRequestback to summary
public CertificateRequest(short[] certificateTypes, Vector<E> supportedSignatureAlgorithms, Vector<E> certificateAuthorities)
Parameters
certificateTypes:short[]

see ClientCertificateType for valid constants.

certificateAuthorities:Vector<E>

a Vector of X500Name.

CertificateRequestback to summary
public CertificateRequest(byte[] certificateRequestContext, Vector<E> supportedSignatureAlgorithms, Vector<E> supportedSignatureAlgorithmsCert, Vector<E> certificateAuthorities) throws IOException
CertificateRequestback to summary
private CertificateRequest(byte[] certificateRequestContext, short[] certificateTypes, Vector<E> supportedSignatureAlgorithms, Vector<E> supportedSignatureAlgorithmsCert, Vector<E> certificateAuthorities)

Method Detail

checkSupportedSignatureAlgorithmsback to summary
private static Vector<E> checkSupportedSignatureAlgorithms(Vector<E> supportedSignatureAlgorithms, short alertDescription) throws IOException
encodeback to summary
public void encode(TlsContext context, OutputStream output) throws IOException

Encode this CertificateRequest to an OutputStream.

Parameters
context:TlsContext

the TlsContext of the current connection.

output:OutputStream

the OutputStream to encode to.

getCertificateAuthoritiesback to summary
public Vector<E> getCertificateAuthorities()
Returns:Vector<E>

a Vector of X500Name

getCertificateRequestContextback to summary
public byte[] getCertificateRequestContext()
getCertificateTypesback to summary
public short[] getCertificateTypes()
Returns:short[]

an array of certificate types

See Also
ClientCertificateType
getSupportedSignatureAlgorithmsback to summary
public Vector<E> getSupportedSignatureAlgorithms()
Returns:Vector<E>

a Vector of SignatureAndHashAlgorithm (or null before TLS 1.2).

getSupportedSignatureAlgorithmsCertback to summary
public Vector<E> getSupportedSignatureAlgorithmsCert()
Returns:Vector<E>

an optional Vector of SignatureAndHashAlgorithm. May be non-null from TLS 1.3 onwards.

hasCertificateRequestContextback to summary
public boolean hasCertificateRequestContext(byte[] certificateRequestContext)
parseback to summary
public static CertificateRequest parse(TlsContext context, InputStream input) throws IOException

Parse a CertificateRequest from an InputStream.

Parameters
context:TlsContext

the TlsContext of the current connection.

input:InputStream

the InputStream to parse from.

Returns:CertificateRequest

a CertificateRequest object.