in java/cose/CoseUtil.java [37:82]
public static DataItem buildUnprotectedHeader(
Optional<Integer> alg,
Optional<List<Integer>> labels,
Optional<Integer> contentType,
Optional<byte[]> kid,
Optional<byte[]> iv,
Optional<byte[]> partialIv,
Optional<byte[]> coseSignature) {
MapBuilder<CborBuilder> headerMapBuilder = new CborBuilder().addMap();
if (alg.isPresent()) {
headerMapBuilder.put(COSE_GENERIC_HEADER_ALG_KEY, alg.get());
}
if (labels.isPresent()) {
ArrayBuilder<MapBuilder<CborBuilder>> labelsArrayBuilder =
headerMapBuilder.putArray(COSE_GENERIC_HEADER_CRIT_KEY);
for (int label : labels.get()) {
labelsArrayBuilder.add(label);
}
labelsArrayBuilder.end();
}
if (contentType.isPresent()) {
headerMapBuilder.put(COSE_GENERIC_HEADER_CONTENT_TYPE_KEY, contentType.get());
}
if (kid.isPresent()) {
headerMapBuilder.put(COSE_GENERIC_HEADER_KID_KEY, kid.get());
}
if (iv.isPresent()) {
headerMapBuilder.put(COSE_GENERIC_HEADER_IV_KEY, iv.get());
}
if (partialIv.isPresent()) {
headerMapBuilder.put(COSE_GENERIC_HEADER_PARTIAL_IV_KEY, partialIv.get());
}
if (coseSignature.isPresent()) {
headerMapBuilder.put(COSE_GENERIC_HEADER_COUNTER_SIGNATURE_KEY, coseSignature.get());
}
return headerMapBuilder.end().build().get(0);
}