Class CryptoUtil


  • public class CryptoUtil
    extends Object
    • Method Detail

      • selfSignedCertificate

        public static org.bouncycastle.cert.X509CertificateHolder selfSignedCertificate​(String x509Name,
                                                                                        KeyPair keyPair,
                                                                                        SignAlgorithmType signAlgorithm,
                                                                                        Date validFrom,
                                                                                        Date validTo)
        Формирование сертификата в формате X.509 на основе переданной ключевой пары
        Parameters:
        x509Name - основные параметры сертификата (должно быть как минимум указано значение CN)
        keyPair - ключевая пара, для которой формируется сертификат
        signAlgorithm - алгоритм подписи
        validFrom - момент времени, с которого будет действителен формируемый сертификат. Если передано null, берется текущее время
        validTo - момент времени, до которого будет действителен формируемый сертификат. Если передано null, берется текущее время + 1 год
        Returns:
        данные сертификата в формате X.509
      • getBase64Digest

        public static String getBase64Digest​(String data,
                                             SignAlgorithmType signAlgorithmType)
        Формирует хэш данных и кодирует его в base64
        Parameters:
        data - входные данные
        Returns:
        хэш в base64
      • getDigest

        public static byte[] getDigest​(byte[] data,
                                       SignAlgorithmType signAlgorithmType)
        Формирует хэш данных для заданного алгоритма
        Parameters:
        data - входные данные
        Returns:
        хэш в base64
      • getFileDigest

        public static byte[] getFileDigest​(byte[] fileBytes,
                                           SignAlgorithmType signAlgorithmType)
        Формирует хэш данных для файла
        Parameters:
        fileBytes - входные данные
        Returns:
        хэш в base64
      • getDigest

        public static byte[] getDigest​(InputStream inputStream,
                                       SignAlgorithmType signAlgorithmType)
                                throws IOException
        Формирует хэш данных для заданного алгоритма
        Parameters:
        inputStream - входные данные
        Returns:
        хэш
        Throws:
        IOException
      • getCMSSignature

        public static byte[] getCMSSignature​(byte[] data,
                                             PrivateKey privateKey,
                                             X509Certificate certificate)
                                      throws GeneralSecurityException,
                                             IOException,
                                             org.bouncycastle.cms.CMSException,
                                             org.bouncycastle.operator.OperatorCreationException
        Создание CMS подписи по ГОСТ 34.10
        Parameters:
        data - входные данные в виде массива байт
        privateKey - закрытый ключ
        certificate - сертификат ЭП
        Returns:
        подпись
        Throws:
        GeneralSecurityException - исключении о невозможности использования переданного ключа и алгоритма подписи с поддерживаемым криптопровайдером
        org.bouncycastle.cms.CMSException - исключение о невозможности формирования подписи CMS по предоставленным данным
        org.bouncycastle.operator.OperatorCreationException - исключении о невозможнсти использования указаного ключа ЭП
        IOException - исключение при формировании массива байт из объекта класса CMSSignedData
      • getSignature

        public static byte[] getSignature​(byte[] data,
                                          PrivateKey privateKey,
                                          SignAlgorithmType signAlgorithmType)
                                   throws GeneralSecurityException
        Подписывает данные ЭП
        Parameters:
        data - входные данные в виде массива байт
        privateKey - закрытый ключ
        signAlgorithmType - параметры алгоритма подписи
        Returns:
        подпись
        Throws:
        GeneralSecurityException
      • getBase64Signature

        public static String getBase64Signature​(String data,
                                                String key,
                                                SignAlgorithmType signAlgorithmType)
                                         throws GeneralSecurityException
        Подписывает данные ЭП по ГОСТ 34.10 и кодирует ее в base64
        Parameters:
        data - входные данные
        key - закрытый ключ в base64
        signAlgorithmType - параметры алгоритма подписи
        Returns:
        подпись в base64
        Throws:
        GeneralSecurityException - исключении о невозможности использования переданного ключа и алгоритма подписи с поддерживаемым криптопровайдером