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

java.security.spec.PSSParameterSpec Maven / Gradle / Ivy

/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You 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
 *
 *     http://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 java.security.spec;

/**
 * The parameter specification for the RSA-PSS Signature scheme.
 * 

* Defined in the PKCS #1 v2.1 * standard. */ public class PSSParameterSpec implements AlgorithmParameterSpec { /** * The default parameter specification. It specifies the following parameters: *

    *
  • message digest: {@code "SHA-1"}
  • *
  • mask generation function (mgf): {@code "MGF1"}
  • *
  • parameters for the mgf: {@link MGF1ParameterSpec#SHA1}
  • *
  • salt length: {@code 20}
  • *
  • trailer field: {@code -1}
  • *
*/ public static final PSSParameterSpec DEFAULT = new PSSParameterSpec(20); // Message digest algorithm name private final String mdName; // Mask generation function algorithm name private final String mgfName; // Mask generation function parameters private final AlgorithmParameterSpec mgfSpec; // Trailer field value private final int trailerField; // Salt length in bits private final int saltLen; /** * Creates a new {@code PSSParameterSpec} with the specified salt length * and the default values. * * @param saltLen * the salt length (in bits). * @throws IllegalArgumentException * if {@code saltLen} is negative. */ public PSSParameterSpec(int saltLen) { if (saltLen < 0) { throw new IllegalArgumentException("saltLen < 0"); } this.saltLen = saltLen; this.mdName = "SHA-1"; this.mgfName = "MGF1"; this.mgfSpec = MGF1ParameterSpec.SHA1; this.trailerField = 1; } /** * Creates a new {@code PSSParameterSpec} with the specified message digest * name, mask generation function name, mask generation function parameters, * salt length, and trailer field value. * * @param mdName * the name of the message digest algorithm. * @param mgfName * the name of the mask generation function algorithm. * @param mgfSpec * the parameter for the mask generation function algorithm. * @param saltLen * the salt length (in bits). * @param trailerField * the trailer field value. * @throws IllegalArgumentException * if {@code saltLen} or {@code trailerField} is negative. */ public PSSParameterSpec(String mdName, String mgfName, AlgorithmParameterSpec mgfSpec, int saltLen, int trailerField) { if (mdName == null) { throw new NullPointerException("mdName == null"); } if (mgfName == null) { throw new NullPointerException("mgfName == null"); } if (saltLen < 0) { throw new IllegalArgumentException("saltLen < 0"); } if (trailerField < 0) { throw new IllegalArgumentException("trailerField < 0"); } this.mdName = mdName; this.mgfName = mgfName; this.mgfSpec = mgfSpec; this.saltLen = saltLen; this.trailerField = trailerField; } /** * Returns the length of the salt (in bits). * * @return the length of the salt (in bits). */ public int getSaltLength() { return saltLen; } /** * Returns the name of the message digest algorithm. * * @return the name of the message digest algorithm. */ public String getDigestAlgorithm() { return mdName; } /** * Returns the name of the mask generation function algorithm. * * @return the name of the mask generation function algorithm. */ public String getMGFAlgorithm() { return mgfName; } /** * Returns the parameter for the mask generation function algorithm. * * @return the parameter for the mask generation function algorithm, or * {@code null} if none specified. */ public AlgorithmParameterSpec getMGFParameters() { return mgfSpec; } /** * Returns the trailer field value. * * @return the trailer field value. */ public int getTrailerField() { return trailerField; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy