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

org.bouncycastle.jcajce.provider.BaseAlgorithmParameters Maven / Gradle / Ivy

Go to download

The FIPS 140-3 Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms certified to FIPS 140-3 level 1. This jar contains JCE provider and low-level API for the BC-FJA version 2.0.0, FIPS Certificate #4743. Please see certificate for certified platform details.

There is a newer version: 2.0.0
Show newest version
package org.bouncycastle.jcajce.provider;

import java.io.IOException;
import java.security.AlgorithmParametersSpi;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.InvalidParameterSpecException;

abstract class BaseAlgorithmParameters
    extends AlgorithmParametersSpi
{
    protected boolean isASN1FormatString(String format)
    {
        return format == null || format.equals("ASN.1");
    }

    protected final  T engineGetParameterSpec(
        Class paramSpec)
        throws InvalidParameterSpecException
    {
        if (paramSpec == null)
        {
            throw new NullPointerException("Argument to getParameterSpec must not be null");
        }

        return (T)localEngineGetParameterSpec(paramSpec);
    }

    protected final void engineInit(byte[] encoding)
        throws IOException
    {
        engineInit(encoding, "ASN.1");
    }

    protected final byte[] engineGetEncoded()
        throws IOException
    {
        return engineGetEncoded("ASN.1");
    }

    protected byte[] engineGetEncoded(
        String format)
        throws IOException
    {
        if (isASN1FormatString(format))
        {
            return localGetEncoded();
        }

        throw new IOException("Unknown parameter format: " + format);
    }

    protected void engineInit(
        byte[] params,
        String format)
        throws IOException
    {
        if (params == null)
        {
            throw new NullPointerException("Encoded parameters cannot be null");
        }

        if (isASN1FormatString(format))
        {
            try
            {
                localInit(params);
            }
            catch (IOException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw new ProvIOException("Parameter parsing failed: " + e.getMessage(), e);
            }
        }
        else
        {
            throw new IOException("Unknown parameter format: " + format);
        }
    }

    protected abstract byte[] localGetEncoded()
        throws IOException;

    protected abstract void localInit(byte[] encoded)
        throws IOException;

    protected abstract AlgorithmParameterSpec localEngineGetParameterSpec(Class paramSpec)
        throws InvalidParameterSpecException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy