in java/cose/CoseKey.java [73:92]
public static CoseKey decode(byte[] data) throws CborException {
DataItem coseKey = CborUtil.cborToDataItem(data);
Map keyMap = CborUtil.asMap(coseKey);
int keyType = CborUtil.asNumber(keyMap.get(new UnsignedInteger(COSE_KEY_KTY_KEY)));
byte[] keyId =
CborUtil.asByteString(keyMap.get(new UnsignedInteger(COSE_KEY_KID_KEY))).getBytes();
int alg = CborUtil.asNumber(keyMap.get(new UnsignedInteger(COSE_KEY_ALG_KEY)));
Array keyOpsArray = CborUtil.asArray(keyMap.get(new UnsignedInteger(COSE_KEY_OPS_KEY)));
ImmutableList.Builder<Integer> keyOps = ImmutableList.builder();
for (DataItem entry : keyOpsArray.getDataItems()) {
keyOps.add(CborUtil.asNumber(entry));
}
byte[] baseIv =
CborUtil.asByteString(keyMap.get(new UnsignedInteger(COSE_KEY_BASE_IV_KEY))).getBytes();
return new CoseKey(keyType, keyId, alg, keyOps.build(), baseIv);
}