public CertificateRequestDeserializer()

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);
    }
  }