com.authlete.cose.COSEUnprotectedHeader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cbor Show documentation
Show all versions of cbor Show documentation
A Java library for CBOR, COSE, CWT and mdoc.
The newest version!
/*
* Copyright (C) 2023 Authlete, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.authlete.cose;
import static com.authlete.cose.constants.COSEHeaderParameters.ALG;
import static com.authlete.cose.constants.COSEHeaderParameters.CONTENT_TYPE;
import static com.authlete.cose.constants.COSEHeaderParameters.IV;
import static com.authlete.cose.constants.COSEHeaderParameters.KID;
import static com.authlete.cose.constants.COSEHeaderParameters.PARTIAL_IV;
import static com.authlete.cose.constants.COSEHeaderParameters.X5CHAIN;
import java.security.cert.X509Certificate;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import com.authlete.cbor.CBORItem;
import com.authlete.cbor.CBORPair;
import com.authlete.cbor.CBORPairList;
import com.authlete.cbor.CBORizer;
/**
* COSE Unprotected Header
*
* @since 1.1
*
* @see RFC 9052, 3. Header Parameters
*
* @see COSEUnprotectedHeaderBuilder
*/
public class COSEUnprotectedHeader extends CBORPairList
{
private Object alg;
private Object contentType;
private byte[] kid;
private byte[] iv;
private byte[] partialIv;
private List x5chain;
/**
* A constructor with key-value pairs that represent the header parameters.
*
* @param pairs
* Header parameters.
*
* @throws IllegalArgumentException
* There is one or more header parameters that do not conform to
* the requirements of 3.1.
* Common COSE Header Parameters.
*/
public COSEUnprotectedHeader(List extends CBORPair> pairs) throws IllegalArgumentException
{
super(pairs);
validateParameters(pairs);
setComment("unprotected");
}
private void validateParameters(List extends CBORPair> pairs)
{
// Validate the label-value pairs.
Map