| /* GENERATED SOURCE. DO NOT MODIFY. */ |
| package com.android.org.bouncycastle.asn1.pkcs; |
| |
| import java.math.BigInteger; |
| |
| import com.android.org.bouncycastle.asn1.ASN1EncodableVector; |
| import com.android.org.bouncycastle.asn1.ASN1Integer; |
| import com.android.org.bouncycastle.asn1.ASN1Object; |
| import com.android.org.bouncycastle.asn1.ASN1Primitive; |
| import com.android.org.bouncycastle.asn1.ASN1Sequence; |
| import com.android.org.bouncycastle.asn1.ASN1TaggedObject; |
| import com.android.org.bouncycastle.asn1.DERNull; |
| import com.android.org.bouncycastle.asn1.DERSequence; |
| import com.android.org.bouncycastle.asn1.DERTaggedObject; |
| import com.android.org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; |
| import com.android.org.bouncycastle.asn1.x509.AlgorithmIdentifier; |
| |
| /** |
| * @hide This class is not part of the Android public SDK API |
| */ |
| public class RSASSAPSSparams |
| extends ASN1Object |
| { |
| private AlgorithmIdentifier hashAlgorithm; |
| private AlgorithmIdentifier maskGenAlgorithm; |
| private ASN1Integer saltLength; |
| private ASN1Integer trailerField; |
| |
| public final static AlgorithmIdentifier DEFAULT_HASH_ALGORITHM = new AlgorithmIdentifier(OIWObjectIdentifiers.idSHA1, DERNull.INSTANCE); |
| public final static AlgorithmIdentifier DEFAULT_MASK_GEN_FUNCTION = new AlgorithmIdentifier(PKCSObjectIdentifiers.id_mgf1, DEFAULT_HASH_ALGORITHM); |
| public final static ASN1Integer DEFAULT_SALT_LENGTH = new ASN1Integer(20); |
| public final static ASN1Integer DEFAULT_TRAILER_FIELD = new ASN1Integer(1); |
| |
| public static RSASSAPSSparams getInstance( |
| Object obj) |
| { |
| if (obj instanceof RSASSAPSSparams) |
| { |
| return (RSASSAPSSparams)obj; |
| } |
| else if (obj != null) |
| { |
| return new RSASSAPSSparams(ASN1Sequence.getInstance(obj)); |
| } |
| |
| return null; |
| } |
| |
| /** |
| * The default version |
| */ |
| public RSASSAPSSparams() |
| { |
| hashAlgorithm = DEFAULT_HASH_ALGORITHM; |
| maskGenAlgorithm = DEFAULT_MASK_GEN_FUNCTION; |
| saltLength = DEFAULT_SALT_LENGTH; |
| trailerField = DEFAULT_TRAILER_FIELD; |
| } |
| |
| public RSASSAPSSparams( |
| AlgorithmIdentifier hashAlgorithm, |
| AlgorithmIdentifier maskGenAlgorithm, |
| ASN1Integer saltLength, |
| ASN1Integer trailerField) |
| { |
| this.hashAlgorithm = hashAlgorithm; |
| this.maskGenAlgorithm = maskGenAlgorithm; |
| this.saltLength = saltLength; |
| this.trailerField = trailerField; |
| } |
| |
| private RSASSAPSSparams( |
| ASN1Sequence seq) |
| { |
| hashAlgorithm = DEFAULT_HASH_ALGORITHM; |
| maskGenAlgorithm = DEFAULT_MASK_GEN_FUNCTION; |
| saltLength = DEFAULT_SALT_LENGTH; |
| trailerField = DEFAULT_TRAILER_FIELD; |
| |
| for (int i = 0; i != seq.size(); i++) |
| { |
| ASN1TaggedObject o = (ASN1TaggedObject)seq.getObjectAt(i); |
| |
| switch (o.getTagNo()) |
| { |
| case 0: |
| hashAlgorithm = AlgorithmIdentifier.getInstance(o, true); |
| break; |
| case 1: |
| maskGenAlgorithm = AlgorithmIdentifier.getInstance(o, true); |
| break; |
| case 2: |
| saltLength = ASN1Integer.getInstance(o, true); |
| break; |
| case 3: |
| trailerField = ASN1Integer.getInstance(o, true); |
| break; |
| default: |
| throw new IllegalArgumentException("unknown tag"); |
| } |
| } |
| } |
| |
| public AlgorithmIdentifier getHashAlgorithm() |
| { |
| return hashAlgorithm; |
| } |
| |
| public AlgorithmIdentifier getMaskGenAlgorithm() |
| { |
| return maskGenAlgorithm; |
| } |
| |
| public BigInteger getSaltLength() |
| { |
| return saltLength.getValue(); |
| } |
| |
| public BigInteger getTrailerField() |
| { |
| return trailerField.getValue(); |
| } |
| |
| /** |
| * <pre> |
| * RSASSA-PSS-params ::= SEQUENCE { |
| * hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1, |
| * maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1, |
| * saltLength [2] INTEGER DEFAULT 20, |
| * trailerField [3] TrailerField DEFAULT trailerFieldBC |
| * } |
| * |
| * OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= { |
| * { OID id-sha1 PARAMETERS NULL }| |
| * { OID id-sha256 PARAMETERS NULL }| |
| * { OID id-sha384 PARAMETERS NULL }| |
| * { OID id-sha512 PARAMETERS NULL }, |
| * ... -- Allows for future expansion -- |
| * } |
| * |
| * PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= { |
| * { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms }, |
| * ... -- Allows for future expansion -- |
| * } |
| * |
| * TrailerField ::= INTEGER { trailerFieldBC(1) } |
| * </pre> |
| * @return the asn1 primitive representing the parameters. |
| */ |
| public ASN1Primitive toASN1Primitive() |
| { |
| ASN1EncodableVector v = new ASN1EncodableVector(4); |
| |
| if (!hashAlgorithm.equals(DEFAULT_HASH_ALGORITHM)) |
| { |
| v.add(new DERTaggedObject(true, 0, hashAlgorithm)); |
| } |
| |
| if (!maskGenAlgorithm.equals(DEFAULT_MASK_GEN_FUNCTION)) |
| { |
| v.add(new DERTaggedObject(true, 1, maskGenAlgorithm)); |
| } |
| |
| if (!saltLength.equals(DEFAULT_SALT_LENGTH)) |
| { |
| v.add(new DERTaggedObject(true, 2, saltLength)); |
| } |
| |
| if (!trailerField.equals(DEFAULT_TRAILER_FIELD)) |
| { |
| v.add(new DERTaggedObject(true, 3, trailerField)); |
| } |
| |
| return new DERSequence(v); |
| } |
| } |