Merge "Identity: Update requirements about SessionTranscript CBOR and provisioning challenge." am: 652b2a99f4

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1323356

Change-Id: I868afecba791fc030b9c64047906d197a35f87a6
This commit is contained in:
Treehugger Robot
2020-06-05 13:50:24 +00:00
committed by Automerger Merge Worker
2 changed files with 12 additions and 23 deletions

View File

@@ -167,25 +167,14 @@ public abstract class IdentityCredential {
* IntentToRetain = bool * IntentToRetain = bool
* </pre> * </pre>
* *
* <p>If the {@code sessionTranscript} parameter is not {@code null}, it must contain CBOR * <p>If the {@code sessionTranscript} parameter is not {@code null}, the X and Y coordinates
* data conforming to the following CDDL schema: * 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
* <pre> * encoded with the most significant bits first and use the exact amount of bits indicated by
* SessionTranscript = [ * the key size of the ephemeral keys. For example, if the ephemeral key is using the P-256
* DeviceEngagementBytes, * curve then the 32 bytes for the X coordinate encoded with the most significant bits first
* EReaderKeyBytes * must appear somewhere in {@code sessionTranscript} and ditto for the 32 bytes for the Y
* ] * coordinate.
*
* 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 {@code readerAuth} is not {@code null} it must be the bytes of a {@code COSE_Sign1} * <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 * structure as defined in RFC 8152. For the payload nil shall be used and the

View File

@@ -56,10 +56,10 @@ public abstract class WritableIdentityCredential {
* authority doesn't care about the nature of the security hardware. If called, however, this * authority doesn't care about the nature of the security hardware. If called, however, this
* method must be called before {@link #personalize(PersonalizationData)}. * method must be called before {@link #personalize(PersonalizationData)}.
* *
* @param challenge is a byte array whose contents should be unique, fresh and provided by * @param challenge is a non-empty byte array whose contents should be unique, fresh and
* the issuing authority. The value provided is embedded in the attestation * provided by the issuing authority. The value provided is embedded in the
* extension and enables the issuing authority to verify that the attestation * attestation extension and enables the issuing authority to verify that the
* certificate is fresh. * attestation certificate is fresh.
* @return the X.509 certificate for this credential's CredentialKey. * @return the X.509 certificate for this credential's CredentialKey.
*/ */
public abstract @NonNull Collection<X509Certificate> getCredentialKeyCertificateChain( public abstract @NonNull Collection<X509Certificate> getCredentialKeyCertificateChain(