Identity: Update requirements about SessionTranscript CBOR and provisioning challenge.
Bug: 156911917 Bug: 158107945 Test: atest VtsHalIdentityTargetTest Test: atest android.security.identity.cts Merged-In: Iacdf89744bbd30c5a10d6cba873147e424ddb01b Change-Id: I06a536425975b2a5ac7a6adc7bcec9645c370e79
This commit is contained in:
@@ -167,25 +167,14 @@ public abstract class IdentityCredential {
|
||||
* IntentToRetain = bool
|
||||
* </pre>
|
||||
*
|
||||
* <p>If the {@code sessionTranscript} parameter is not {@code null}, it must contain CBOR
|
||||
* data conforming to the following CDDL schema:
|
||||
*
|
||||
* <pre>
|
||||
* SessionTranscript = [
|
||||
* DeviceEngagementBytes,
|
||||
* EReaderKeyBytes
|
||||
* ]
|
||||
*
|
||||
* DeviceEngagementBytes = #6.24(bstr .cbor DeviceEngagement) ; Bytes of DeviceEngagement
|
||||
* EReaderKeyBytes = #6.24(bstr .cbor EReaderKey.Pub) ; Bytes of EReaderKey.pub
|
||||
*
|
||||
* EReaderKey.Pub = COSE_Key ; Ephemeral public key provided by reader
|
||||
* </pre>
|
||||
*
|
||||
* <p>where a {@code COSE_Key} structure for the public part of the key-pair previously
|
||||
* generated by {@link #createEphemeralKeyPair()} must appear somewhere in
|
||||
* {@code DeviceEngagement} and the X and Y coordinates must both be present
|
||||
* in uncompressed form.
|
||||
* <p>If the {@code sessionTranscript} parameter is not {@code null}, the X and Y coordinates
|
||||
* of the public part of the key-pair previously generated by {@link #createEphemeralKeyPair()}
|
||||
* must appear somewhere in the bytes of the CBOR. Each of these coordinates must appear
|
||||
* encoded with the most significant bits first and use the exact amount of bits indicated by
|
||||
* the key size of the ephemeral keys. For example, if the ephemeral key is using the P-256
|
||||
* curve then the 32 bytes for the X coordinate encoded with the most significant bits first
|
||||
* must appear somewhere in {@code sessionTranscript} and ditto for the 32 bytes for the Y
|
||||
* coordinate.
|
||||
*
|
||||
* <p>If {@code readerAuth} is not {@code null} it must be the bytes of a {@code COSE_Sign1}
|
||||
* structure as defined in RFC 8152. For the payload nil shall be used and the
|
||||
|
||||
@@ -56,10 +56,10 @@ public abstract class WritableIdentityCredential {
|
||||
* authority doesn't care about the nature of the security hardware. If called, however, this
|
||||
* method must be called before {@link #personalize(PersonalizationData)}.
|
||||
*
|
||||
* @param challenge is a byte array whose contents should be unique, fresh and provided by
|
||||
* the issuing authority. The value provided is embedded in the attestation
|
||||
* extension and enables the issuing authority to verify that the attestation
|
||||
* certificate is fresh.
|
||||
* @param challenge is a non-empty byte array whose contents should be unique, fresh and
|
||||
* provided by the issuing authority. The value provided is embedded in the
|
||||
* attestation extension and enables the issuing authority to verify that the
|
||||
* attestation certificate is fresh.
|
||||
* @return the X.509 certificate for this credential's CredentialKey.
|
||||
*/
|
||||
public abstract @NonNull Collection<X509Certificate> getCredentialKeyCertificateChain(
|
||||
|
||||
Reference in New Issue
Block a user