Package ru.i_novus.common.sign.util
Class CryptoUtil
- java.lang.Object
-
- ru.i_novus.common.sign.util.CryptoUtil
-
public class CryptoUtil extends Object
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static KeyPairgenerateKeyPair(SignAlgorithmType signAlgorithmType, String parameterSpecName)Формирование ключевой пары по заданным алгоритмамstatic StringgetBase64Digest(String data, SignAlgorithmType signAlgorithmType)Формирует хэш данных и кодирует его в base64static StringgetBase64Signature(String data, String key, SignAlgorithmType signAlgorithmType)Подписывает данные ЭП по ГОСТ 34.10 и кодирует ее в base64static byte[]getCMSSignature(byte[] data, PrivateKey privateKey, X509Certificate certificate)Создание CMS подписи по ГОСТ 34.10static byte[]getDigest(byte[] data, SignAlgorithmType signAlgorithmType)Формирует хэш данных для заданного алгоритмаstatic byte[]getDigest(InputStream inputStream, SignAlgorithmType signAlgorithmType)Формирует хэш данных для заданного алгоритмаstatic byte[]getFileDigest(byte[] fileBytes, SignAlgorithmType signAlgorithmType)Формирует хэш данных для файлаstatic byte[]getSignature(byte[] data, PrivateKey privateKey, SignAlgorithmType signAlgorithmType)Подписывает данные ЭПstatic SignaturegetSignatureInstance(SignAlgorithmType signAlgorithmType)static StringgetThumbPrint(X509Certificate cert)static org.bouncycastle.cert.X509CertificateHolderselfSignedCertificate(String x509Name, KeyPair keyPair, SignAlgorithmType signAlgorithm, Date validFrom, Date validTo)Формирование сертификата в формате X.509 на основе переданной ключевой пары
-
-
-
Method Detail
-
generateKeyPair
public static KeyPair generateKeyPair(SignAlgorithmType signAlgorithmType, String parameterSpecName) throws NoSuchProviderException, NoSuchAlgorithmException
Формирование ключевой пары по заданным алгоритмам- Parameters:
signAlgorithmType- тип алгоритмаparameterSpecName- наименование спецификации параметров алгоритма- Returns:
- ключевая пара (открытый и закрытый ключи)
- Throws:
NoSuchProviderExceptionNoSuchAlgorithmException
-
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- закрытый ключ в base64signAlgorithmType- параметры алгоритма подписи- Returns:
- подпись в base64
- Throws:
GeneralSecurityException- исключении о невозможности использования переданного ключа и алгоритма подписи с поддерживаемым криптопровайдером
-
getThumbPrint
public static String getThumbPrint(X509Certificate cert) throws NoSuchAlgorithmException, CertificateEncodingException
-
getSignatureInstance
public static Signature getSignatureInstance(SignAlgorithmType signAlgorithmType) throws GeneralSecurityException
- Throws:
GeneralSecurityException
-
-