All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sap.hana.datalake.files.shaded.org.bouncycastle.oer.its.Signature Maven / Gradle / Ivy

package com.sap.hana.datalake.files.shaded.org.bouncycastle.oer.its;

import com.sap.hana.datalake.files.shaded.org.bouncycastle.asn1.ASN1Choice;
import com.sap.hana.datalake.files.shaded.org.bouncycastle.asn1.ASN1Encodable;
import com.sap.hana.datalake.files.shaded.org.bouncycastle.asn1.ASN1Object;
import com.sap.hana.datalake.files.shaded.org.bouncycastle.asn1.ASN1Primitive;
import com.sap.hana.datalake.files.shaded.org.bouncycastle.asn1.ASN1TaggedObject;
import com.sap.hana.datalake.files.shaded.org.bouncycastle.asn1.DEROctetString;
import com.sap.hana.datalake.files.shaded.org.bouncycastle.asn1.DERTaggedObject;

/**
 * 
 *     Signature ::= CHOICE {
 *         ecdsaNistP256Signature EcdsaP256Signature,
 *         ecdsaBrainpoolP256r1Signature EcdsaP256Signature,
 *         ...
 *         ecdsaBrainpoolP384r1Signature EcdsaP384Signature
 *     }
 * 
*/ public class Signature extends ASN1Object implements ASN1Choice { public static final int ecdsaNistP256Signature = 0; public static final int ecdsaBrainpoolP256r1Signature = 1; public static final int ecdsaBrainpoolP384r1Signature = 3; private static final int extension = 2; private final int choice; private final ASN1Encodable value; public Signature(int choice, ASN1Encodable value) { this.choice = choice; this.value = value; } public static Signature getInstance(Object objectAt) { if (objectAt instanceof Signature) { return (Signature)objectAt; } ASN1TaggedObject ato = ASN1TaggedObject.getInstance(objectAt); ASN1Encodable value; switch (ato.getTagNo()) { case ecdsaNistP256Signature: case ecdsaBrainpoolP256r1Signature: value = EcdsaP256Signature.getInstance(ato.getObject()); break; case extension: value = DEROctetString.getInstance(ato.getObject()); break; case ecdsaBrainpoolP384r1Signature: value = EcdsaP384Signature.getInstance(ato.getObject()); break; default: throw new IllegalStateException("unknown choice " + ato.getTagNo()); } return new Signature(ato.getTagNo(), value); } public static Builder builder() { return new Builder(); } public int getChoice() { return choice; } public ASN1Encodable getValue() { return value; } public ASN1Primitive toASN1Primitive() { return new DERTaggedObject(choice, value); } public static class Builder { private int choice; private ASN1Encodable value; /* ecdsaNistP256Signature EcdsaP256Signature, * ecdsaBrainpoolP256r1Signature EcdsaP256Signature, * ... * ecdsaBrainpoolP384r1Signature EcdsaP384Signature */ public Builder ecdsaNistP256Signature(EcdsaP256Signature signature) { choice = ecdsaNistP256Signature; value = signature; return this; } public Builder ecdsaBrainpoolP256r1Signature(EcdsaP256Signature signature) { choice = ecdsaBrainpoolP256r1Signature; value = signature; return this; } public Builder ecdsaBrainpoolP384r1Signature(EcdsaP384Signature signature) { choice = ecdsaBrainpoolP384r1Signature; value = signature; return this; } public Signature createSignature() { return new Signature(choice, value); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy