createAttestationProof

suspend fun AttestationChallenge.createAttestationProof(alias: String, authPromptMessage: String? = null, authPromptCancelText: String? = null, additionalCsrExtensions: List<X509CertificateExtension> = listOf(), additionalCsrAttributes: List<Pkcs10CertificationRequestAttribute> = listOf(), attestAttributes: (List<AttestationChallenge.AttributeAttestationDescriptor>) -> List<Primitive>): KmmResult<AttestationProof>(source)

Creates a signed CSR or unsigned TBS CSR from this challenge, according to AttestationChallenge.dataAuth. Key creation follows AttestationChallenge.keyConstraints. Hence, if no constraints are set, this method will always fail!

DataAuthentication.Signature signs the completed TBS CSR and proves possession of the attested private key. DataAuthentication.Hash hashes an AttestationHashInput containing the subject, extensions, and attributes, feeds that digest into platform attestation, and returns the completed but unsigned TBS CSR. The verifier separately checks that its public key is the attested key.

Encodes the challenge's nonce into a KnownOIDs.serialNumber subjectName and the attestation statement into a Pkcs10CertificationRequestAttribute with AttestationChallenge.proofOID. Signing may require user authentication. Hash authentication performs no CSR signing.

Usually, you'll want to use pass AlternativeNames into additionalCsrExtensions, not a subject name! By default, the RDN used for this CSR will only contain KnownOIDs.serialNumber containing the nonce from the passed nonce. Hence, the values passed to this parameter containing a KnownOIDs.serialNumber will be overwritten.

Return

AttestationProof.Signed for DataAuthentication.Signature, or AttestationProof.Hashed for DataAuthentication.Hash.

Parameters

additionalCsrExtensions

Certificate extensions to be requested. May be ignored by the issuer.

additionalCsrAttributes

Additional CSR attributes to pack into this CSR.

attestAttributes

Supplies the requested values in order. It is invoked exactly once when AttestationChallenge.toBeAttestedAttributes is present and is not invoked otherwise.


suspend fun AttestationChallenge.createAttestationProof(alias: String, authPromptMessage: String? = null, authPromptCancelText: String? = null, additionalCsrExtensions: List<X509CertificateExtension> = listOf(), additionalCsrAttributes: List<Pkcs10CertificationRequestAttribute> = listOf()): KmmResult<Pkcs10CertificationRequest>(source)

Deprecated

To be removed in Warden Supreme 1.3. Use the overload accepting attestAttributes