public class TlsUniqueAttributeUtil
extends java.lang.Object
RFC 7030 §3.5
originally tunnelled the tls-unique value through the overloaded
PKCS#9 challengePassword attribute.
RFC 7894 §3.3
introduced id-aa-estIdentityLinking as the unambiguous attribute for
the same purpose. Per
RFC 7894 §4,
clients that see estIdentityLinking in the server's CSR-Attributes
response SHOULD prefer it and SHOULD NOT also include
challengePassword; clients that do not have a response (or whose
response does not advertise it) should continue to use the legacy attribute
for compatibility.
| Modifier and Type | Method and Description |
|---|---|
static void |
setTlsUniqueAttribute(PKCS10CertificationRequestBuilder builder,
byte[] tlsUnique,
CSRAttributesResponse csrAttrs)
Set the EST transport-identity-linking attribute on
builder from
the supplied tls-unique channel-binding value. |
public static void setTlsUniqueAttribute(PKCS10CertificationRequestBuilder builder, byte[] tlsUnique, CSRAttributesResponse csrAttrs)
builder from
the supplied tls-unique channel-binding value. The attribute type
is chosen per RFC 7894 §4:
csrAttrs is non-null and advertises
PKCSObjectIdentifiers.id_aa_estIdentityLinking, the value
goes into an id-aa-estIdentityLinking attribute (preferred).PKCSObjectIdentifiers.pkcs_9_at_challengePassword attribute
for compatibility with pre-RFC-7894 servers.tlsUnique.builder - the PKCS#10 request builder being assembled.tlsUnique - the raw tls-unique bytes (RFC 5929) for the current
TLS session.csrAttrs - the CSR-Attributes response previously fetched from the
server, or null if none is available.