in java/remoteprovisioning/CertificateRequestDeserializer.java [80:109]
public CertificateRequestDeserializer(byte[] data) throws CborException, CryptoException {
CBORObject certRequest = CBORObject.DecodeFromBytes(data);
if (certRequest.getType() != CBORType.Array) {
throw new CborException(
"CertificateRequest Type Wrong",
CBORType.Array,
certRequest.getType(),
CborException.TYPE_MISMATCH);
}
if (certRequest.size() != CERTIFICATE_REQUEST_NUM_ENTRIES) {
throw new CborException(
"CertificateRequest has the wrong number of entries",
CERTIFICATE_REQUEST_NUM_ENTRIES,
certRequest.size(),
CborException.INCORRECT_LENGTH);
}
mMacedKeysToSign = new MAC0Message();
mProtectedData = CBORObject.NewArray();
try {
mDeviceInfo = certRequest.get(CERTIFICATE_REQUEST_DEVICE_INFO_INDEX);
mChallenge = certRequest.get(CERTIFICATE_REQUEST_CHALLENGE_INDEX).ToObject(byte[].class);
mProtectedData = certRequest.get(CERTIFICATE_REQUEST_PROTECTED_DATA_INDEX);
mMacedKeysMac =
certRequest.get(CERTIFICATE_REQUEST_MACED_KEYS_INDEX).get(MAC_INDEX).GetByteString();
mMacedKeysToSign.DecodeFromCBORObject(certRequest.get(CERTIFICATE_REQUEST_MACED_KEYS_INDEX));
} catch (CoseException e) {
throw new CborException(
"CertificateRequest deserialization failure", e, CborException.DESERIALIZATION_ERROR);
}
}