com.bouncycastle.asn1.crmf.PKMACValue Maven / Gradle / Ivy
The newest version!
package com.bouncycastle.asn1.crmf;
import com.bouncycastle.asn1.ASN1Encodable;
import com.bouncycastle.asn1.ASN1EncodableVector;
import com.bouncycastle.asn1.ASN1Sequence;
import com.bouncycastle.asn1.ASN1TaggedObject;
import com.bouncycastle.asn1.DERBitString;
import com.bouncycastle.asn1.DERObject;
import com.bouncycastle.asn1.DERSequence;
import com.bouncycastle.asn1.cmp.CMPObjectIdentifiers;
import com.bouncycastle.asn1.cmp.PBMParameter;
import com.bouncycastle.asn1.x509.AlgorithmIdentifier;
/**
* Password-based MAC value for use with POPOSigningKeyInput.
*/
public class PKMACValue
extends ASN1Encodable
{
private AlgorithmIdentifier algId;
private DERBitString value;
private PKMACValue(ASN1Sequence seq)
{
algId = AlgorithmIdentifier.getInstance(seq.getObjectAt(0));
value = DERBitString.getInstance(seq.getObjectAt(1));
}
public static PKMACValue getInstance(Object o)
{
if (o instanceof PKMACValue)
{
return (PKMACValue)o;
}
if (o instanceof ASN1Sequence)
{
return new PKMACValue((ASN1Sequence)o);
}
throw new IllegalArgumentException("Invalid object: " + o.getClass().getName());
}
public static PKMACValue getInstance(ASN1TaggedObject obj, boolean isExplicit)
{
return getInstance(ASN1Sequence.getInstance(obj, isExplicit));
}
/**
* Creates a new PKMACValue.
* @param params parameters for password-based MAC
* @param value MAC of the DER-encoded SubjectPublicKeyInfo
*/
public PKMACValue(
PBMParameter params,
DERBitString value)
{
this(new AlgorithmIdentifier(
CMPObjectIdentifiers.passwordBasedMac, params), value);
}
/**
* Creates a new PKMACValue.
* @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
* @param value MAC of the DER-encoded SubjectPublicKeyInfo
*/
public PKMACValue(
AlgorithmIdentifier aid,
DERBitString value)
{
this.algId = aid;
this.value = value;
}
public AlgorithmIdentifier getAlgId()
{
return algId;
}
public DERBitString getValue()
{
return value;
}
/**
*
* PKMACValue ::= SEQUENCE {
* algId AlgorithmIdentifier,
* -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
* -- parameter value is PBMParameter
* value BIT STRING }
*
* @return a basic ASN.1 object representation.
*/
public DERObject toASN1Object()
{
ASN1EncodableVector v = new ASN1EncodableVector();
v.add(algId);
v.add(value);
return new DERSequence(v);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy