public class GostCertificateRequest
extends java.lang.Object
implements ru.CryptoPro.JCPRequest.KeyUsage
Структура запроса имеет следующий вид:
CertificationRequest ::= SEQUENCE {
certificationRequestInfo SEQUENCE {
version INTEGER,
subject Name,
subjectPublicKeyInfo SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING },
attributes [0] IMPLICIT SET OF Attribute },
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING}
Для генерации запроса необходимо выполнить следующую последовательность
действий: Структура самоподписанного сертификата имеет следующий вид:
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING }
TBSCertificate ::= SEQUENCE {
version [0] Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version shall be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version shall be v2 or v3
extensions [3] Extensions OPTIONAL
-- If present, version shall be v3 -- }
Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE {
notBefore Time,
notAfter Time }
Time ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime }
UniqueIdentifier ::= BIT STRING
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING }
Генерация самопописанного сертификата осуществляется статическим методом
getEncodedSelfCert(PrivateKey, PublicKey, String), получающим ключевую
пару и имя субъекта (оно же имя издателя) в качестве параметров, и
возвращающим закодированный в DER-кодировке самоподписанный сертификат.
Отправка подписанного запроса и получение закодированного сертификата
производится одним из следующих методов: | Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
ADDRESS_SHOULD_BE_HTTP
Сообщение для exception: "Адрес должен быть HTTP".
|
static java.lang.String |
BEGIN_STRING
Стандартная строка начала запроса.
|
static java.lang.String |
DEFAULT_SIGN_ALGORITHM
Алгоритм подписи по умолчанию.
|
static java.lang.String |
END_STRING
Стандартная строка окончания запроса.
|
static java.lang.String |
UNKNOWN_KEY_ALGORITHM
Сообщение для exception: "Неизвестный алгоритм ключа".
|
BIT_CRL_SIGN, BIT_DATA_ENCIPHERMENT, BIT_DECIPHER_ONLY, BIT_DIGITAL_SIGNATURE, BIT_ENCIPHER_ONLY, BIT_KEY_AGREEMENT, BIT_KEY_CERT_SIGN, BIT_KEY_ENCIPHERMENT, BIT_NON_REPUDIATION, CENTER_DEFAULT, CRL_SIGN, CRYPT_DEFAULT, DATA_ENCIPHERMENT, DECIPHER_ONLY, DIGITAL_SIGNATURE, ENCIPHER_ONLY, INTS_PKIX_CLIENT_AUTH, INTS_PKIX_CODE_SIGNING, INTS_PKIX_EMAIL_PROTECTION, INTS_PKIX_IPSEC_END_SYSTEM, INTS_PKIX_IPSEC_TUNNEL, INTS_PKIX_IPSEC_USER, INTS_PKIX_OCSP_SIGNING, INTS_PKIX_SERVER_AUTH, INTS_PKIX_TIME_STAMPING, KEY_AGREEMENT, KEY_CERT_SIGN, KEY_ENCIPHERMENT, NON_REPUDIATION, NOT_SET, SIGN_DEFAULT, STR_OID_PKIX_CLIENT_AUTH, STR_OID_PKIX_CODE_SIGNING, STR_OID_PKIX_EMAIL_PROTECTION, STR_OID_PKIX_IPSEC_END_SYSTEM, STR_OID_PKIX_IPSEC_TUNNEL, STR_OID_PKIX_IPSEC_USER, STR_OID_PKIX_OCSP_SIGNING, STR_OID_PKIX_SERVER_AUTH, STR_OID_PKIX_TIME_STAMPING| Constructor and Description |
|---|
GostCertificateRequest()
Создание нового объекта генерации запроса на сертификат.
|
GostCertificateRequest(java.lang.String provName)
Создание нового объекта генерации запроса на сертификат, с уточнением
провайдера.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addExtension(ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension e)
Добавление расширения к списку.
|
void |
addExtKeyUsage(int[] ints)
Add Extended KeyUsage to list.
|
void |
addExtKeyUsage(ru.CryptoPro.JCP.params.OID oid)
Add Extended KeyUsage to list.
|
void |
addExtKeyUsage(java.lang.String str)
Add Extended KeyUsage to list.
|
void |
clearExtKeyUsage()
Clear all Extended KeyUsage.
|
void |
clearExtList()
Очистка всех расширений из списка.
|
static ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension |
createBasic()
Создание расширения с ограничениями.
|
static ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension |
createExtUsage(java.util.Vector list)
Создание расширения расширенного использования ключа.
|
static java.util.BitSet |
createKeyUsageBitSet(int mask)
Если пользователь снаружи установил keyUsage, он и используется, иначе
используется keyUsage по умолчанию.
|
static ru.CryptoPro.JCP.ASN.PKIXCMP.CertificationRequest |
createRequest()
Создает объект request.
|
static ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension |
createUsage(int mask)
Создание расширения использования ключа по маске.
|
void |
decodeRequest(byte[] req)
Декодирование запроса и извлечение его свойств.
|
void |
encodeAndSign(java.security.PrivateKey privateKey)
Кодирование в DER-кодировку и подпись сертификата.
|
void |
encodeAndSign(java.security.PrivateKey privateKey,
java.lang.String algorithm)
Кодирование в DER-кодировку и подпись сертификата.
|
void |
encodeAndSignOLD(java.security.PrivateKey privateKey,
java.lang.String algorithm)
Кодирование в DER-кодировку и подпись сертификата.
|
static ru.CryptoPro.JCP.ASN.CertificateExtensions._extKeyUsage_ExtnType |
formExtKeyUsage(java.util.Vector list)
Helper.
|
byte[] |
generateCert(java.security.PrivateKey privateKey,
java.security.PublicKey pubKey,
java.lang.String subject,
java.lang.String issuer)
Генерация сертификата открытого ключа субъекта с именем subject, подписанного
закрытым ключом издателя issuer.
|
byte[] |
generateCert(java.security.PrivateKey privateKey,
java.security.PublicKey pubKey,
java.lang.String subject,
java.lang.String issuer,
java.lang.String algorithm)
Генерация сертификата открытого ключа субъекта с именем subject, подписанного
закрытым ключом издателя issuer.
|
byte[] |
generateCert(java.security.PrivateKey privateKey,
java.security.PublicKey pubKey,
ru.CryptoPro.reprov.x509.X500Name subject,
ru.CryptoPro.reprov.x509.X500Name issuer,
java.lang.String algorithm)
Генерация сертификата открытого ключа субъекта с именем subject, подписанного
закрытым ключом издателя issuer.
|
byte[] |
generateCertFromRequest(java.security.PrivateKey privateKey,
java.lang.String issuer)
Генерация сертификата из запроса путем подписывания закрытым ключом
издателя issuer.
|
byte[] |
generateCertFromRequest(java.security.PrivateKey privateKey,
ru.CryptoPro.reprov.x509.X500Name issuer)
Генерация сертификата из запроса путем подписывания закрытым ключом
издателя issuer.
|
byte[] |
getEncoded()
Получение подписанного и закодированного в DER-кодировке запроса.
|
byte[] |
getEncodedCert(java.lang.String httpAddress)
Отправка подписанного запроса центру сертификации и получение
соответствующего запросу сертификата.
|
static byte[] |
getEncodedCertFromBASE64(java.lang.String httpAddress,
java.io.InputStream req)
Отправка запроса в кодировке BASE64 центру сертификации и получение
соответствующего запросу сертификата.
|
static byte[] |
getEncodedCertFromDER(java.lang.String httpAddress,
java.io.InputStream req)
Отправка запроса в DER-кодировке центру сертификации и получение
соответствующего запросу сертификата.
|
static byte[] |
getEncodedRootCert(java.lang.String httpAddress)
Получение корневого сертификата центра сертификации.
|
byte[] |
getEncodedSelfCert(java.security.KeyPair keyPair,
java.lang.String name)
Генерация самоподписанного сертификата.
|
byte[] |
getEncodedSelfCert(java.security.KeyPair keyPair,
java.lang.String name,
java.lang.String algorithm)
Генерация самоподписанного сертификата.
|
byte[] |
getEncodedSelfCert(java.security.KeyPair keyPair,
ru.CryptoPro.reprov.x509.X500Name name,
java.lang.String algorithm)
Генерация самоподписанного сертификата.
|
static int |
getId(java.lang.String page)
Поиск идентификатора запроса, чтобы по нему скачать сертификат.
|
static int |
getIdExtended(java.lang.String page)
Поиск идентификатора запроса, чтобы по нему скачать сертификат.
|
static int |
getIdNew(java.lang.String page)
Поиск идентификатора запроса, чтобы по нему скачать сертификат.
|
int |
getKeyUsageMask()
Get keyUsage.
|
java.lang.String |
getProviderName()
Получение имени провайдера для подписи запроса.
|
ru.CryptoPro.JCP.ASN.PKIX1Explicit88.RDNSequence |
getSubjectInfo()
Получение имени субъекта в ASN1-формате из запроса.
|
ru.CryptoPro.JCP.ASN.PKIX1Explicit88.SubjectPublicKeyInfo |
getSubjectKey()
Получение открытого ключа в ASN1-формате из запроса.
|
static byte[] |
httpGetFile(java.lang.String httpAddress,
ru.CryptoPro.JCPRequest.ca15.user.CAUser user)
Скачивает файл по http.
|
static byte[] |
httpGetFile(java.lang.String httpAddress,
ru.CryptoPro.JCPRequest.ca15.user.CAUser user,
java.util.Properties headers)
Скачивает файл по http.
|
void |
init(java.lang.String keyAlgName)
Deprecated.
с версии 1.0.48 вместо init() лучше использовать setKeyUsage() и
addExtKeyUsage()
|
void |
init(java.lang.String keyAlgName,
boolean isServer)
Deprecated.
с версии 1.0.48 вместо init() лучше использовать setKeyUsage() и
addExtKeyUsage()
|
void |
init(java.lang.String keyAlgName,
boolean isServer,
boolean isExchange)
Deprecated.
с версии 1.0.48 вместо init() лучше использовать setKeyUsage() и
addExtKeyUsage()
|
void |
initOLD(java.lang.String keyAlgName,
boolean isServer)
Deprecated.
с версии 1.0.48 вместо init() лучше использовать setKeyUsage() и
addExtKeyUsage()
|
static boolean |
isEquals(com.objsys.asn1j.runtime.Asn1ObjectIdentifier a,
com.objsys.asn1j.runtime.Asn1ObjectIdentifier b)
Compare OIDs.
|
boolean |
isExchange()
Определение, был ли запрос подписан ключом обмена.
|
boolean |
isServer()
Определение, был ли запрос создан для аутентификации сервера, иначе - клиента.
|
int |
lengthExtKeyUsage()
Get Extended KeyUsage size.
|
int |
lengthExtList()
Получение длины списка расширений.
|
void |
printToBASE64(java.io.PrintStream out)
Печать подписанного запроса в BASE64-кодировке в передаваемый PrintStream.
|
void |
printToDER(java.io.PrintStream out)
Печать подписанного запроса в DER-кодировке в передаваемый PrintStream.
|
void |
removeExtension(ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension e)
Удаление расширения из списка.
|
void |
removeExtKeyUsage(int[] ints)
Remove Extended KeyUsage from list.
|
void |
removeExtKeyUsage(ru.CryptoPro.JCP.params.OID oid)
Remove Extended KeyUsage from list.
|
void |
removeExtKeyUsage(java.lang.String str)
Remove Extended KeyUsage from list.
|
void |
reset()
Сброс настроек.
|
void |
setKeyUsage(int i)
Set keyUsage.
|
static void |
setPublic2Request(ru.CryptoPro.JCP.ASN.PKIXCMP.CertificationRequest req,
ru.CryptoPro.JCP.ASN.PKIX1Explicit88.SubjectPublicKeyInfo keyInfo)
Store saved public key info to request.
|
void |
setPublicKeyInfo(java.security.PublicKey publicKey)
Кодирование и запись в структуру запроса параметров и значения передаваемого
открытого ключа субъекта.
|
void |
setPublicKeyInfoOLD(java.security.PublicKey publicKey)
Кодирование и запись в структуру запроса параметров и значения передаваемого
открытого ключа субъекта.
|
static void |
setSign2Request(ru.CryptoPro.JCP.ASN.PKIXCMP.CertificationRequest req,
byte[] signature,
ru.CryptoPro.JCP.params.OID signatureParam)
Store signature to request.
|
static void |
setSubject2Request(ru.CryptoPro.JCP.ASN.PKIXCMP.CertificationRequest req,
ru.CryptoPro.JCP.ASN.PKIX1Explicit88.RDNSequence name)
Store saved X500 name to request.
|
void |
setSubjectInfo(java.lang.String name)
Кодирование и запись в структуру запроса имени субъекта.
|
void |
setSubjectInfo(ru.CryptoPro.reprov.x509.X500Name x500Name)
Кодирование и запись в структуру запроса имени субъекта.
|
void |
setSubjectInfoOLD(java.lang.String name)
Кодирование и запись в структуру запроса имени субъекта.
|
static byte[] |
sign(java.security.PrivateKey privateKey,
byte[] data,
java.lang.String algorithm,
java.lang.String provider)
Создание подписи закодированного запроса.
|
public static final java.lang.String DEFAULT_SIGN_ALGORITHM
public static final java.lang.String ADDRESS_SHOULD_BE_HTTP
public static final java.lang.String UNKNOWN_KEY_ALGORITHM
public static final java.lang.String BEGIN_STRING
public static final java.lang.String END_STRING
public GostCertificateRequest()
throws java.io.IOException
java.io.IOException - ошибка инициализацииpublic GostCertificateRequest(java.lang.String provName)
throws java.io.IOException
provName - Имя провайдера для подписи запроса.java.io.IOException - ошибка инициализацииpublic java.lang.String getProviderName()
public void setPublicKeyInfoOLD(java.security.PublicKey publicKey)
throws java.io.IOException,
java.security.SignatureException
publicKey - Открытый ключ субъекта (ключ должен соответствовать
закрытому ключу подписи или обмена алгоритма ГОСТ Р 34.10-2001).java.io.IOException - исключение возникает в случае ошибки при кодировании
открытого ключа (возможно, ключ поврежден)java.security.SignatureException - if encoded == nullpublic void setPublicKeyInfo(java.security.PublicKey publicKey)
throws java.io.IOException,
java.security.SignatureException
publicKey - Открытый ключ субъекта (ключ должен соответствовать
закрытому ключу подписи или обмена алгоритма ГОСТ Р 34.10-2001 или
ГОСТ Р 34.10-2012).java.io.IOException - исключение возникает в случае ошибки при кодировании
открытого ключа (возможно, ключ поврежден)java.security.SignatureException - if encoded == nullpublic ru.CryptoPro.JCP.ASN.PKIX1Explicit88.SubjectPublicKeyInfo getSubjectKey()
public void setSubjectInfoOLD(java.lang.String name)
throws java.io.IOException,
java.security.SignatureException
name - Имя субъекта в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.SignatureException - if encoded == nullX500Principalpublic void setSubjectInfo(java.lang.String name)
throws java.io.IOException,
java.security.SignatureException
name - Имя субъекта в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.SignatureException - if encoded == nullX500Principalpublic void setSubjectInfo(ru.CryptoPro.reprov.x509.X500Name x500Name)
throws java.io.IOException,
java.security.SignatureException
x500Name - Имя субъекта в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.SignatureException - if encoded == nullX500Principalpublic ru.CryptoPro.JCP.ASN.PKIX1Explicit88.RDNSequence getSubjectInfo()
public void setKeyUsage(int i)
i - keyUsage mask.public int getKeyUsageMask()
public void clearExtKeyUsage()
public int lengthExtKeyUsage()
public void removeExtKeyUsage(int[] ints)
ints - Attribute to remove.public void removeExtKeyUsage(ru.CryptoPro.JCP.params.OID oid)
oid - Attribute to remove.public void removeExtKeyUsage(java.lang.String str)
str - Attribute to remove.public void addExtKeyUsage(int[] ints)
ints - Attribute.public void addExtKeyUsage(java.lang.String str)
str - Attribute.public void addExtKeyUsage(ru.CryptoPro.JCP.params.OID oid)
oid - Attribute.public static boolean isEquals(com.objsys.asn1j.runtime.Asn1ObjectIdentifier a,
com.objsys.asn1j.runtime.Asn1ObjectIdentifier b)
a - First OID to compare.b - Second OID to compare.public void clearExtList()
public int lengthExtList()
public void addExtension(ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension e)
e - Расширение.public void removeExtension(ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension e)
e - Расширение.public void encodeAndSign(java.security.PrivateKey privateKey)
throws java.security.SignatureException,
java.io.IOException,
java.security.InvalidKeyException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ субъекта, на котором осуществляется подпись
запроса (ключ должен являться закрытым ключом подписи или обмена алгоритма
ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-2012).java.security.SignatureException - исключение возникает в случае, когда запрос уже
был подписан, либо возникла проблема с созданием подписиjava.io.IOException - исключение возникает в случае ошибки при кодировании
запроса (например, когда объекту генерации запроса не были переданы параметры
открытого ключа, либо имя субъекта)java.security.InvalidKeyException - исключение возникает в случае, когда закрытый
ключ не является ключом обмена или подписи алгоритма ГОСТ Р 34.10-2001 или
ГОСТ Р 34.10-2012java.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic void encodeAndSignOLD(java.security.PrivateKey privateKey,
java.lang.String algorithm)
throws java.security.SignatureException,
java.io.IOException,
java.security.InvalidKeyException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ субъекта, на котором осуществляется подпись запроса.algorithm - Имя алгоритма подписи. Если null, то алгоритм определяется по ключу.java.security.SignatureException - исключение возникает в случае, когда запрос уже
был подписан, либо возникла проблема с созданием подписиjava.io.IOException - исключение возникает в случае ошибки при кодировании
запроса (например, когда объекту генерации запроса не были переданы параметры
открытого ключа, либо имя субъекта)java.security.InvalidKeyException - исключение возникает в случае, когда закрытый
ключ не является ключом обмена или подписи алгоритма ГОСТ Р 34.10-2001java.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic void encodeAndSign(java.security.PrivateKey privateKey,
java.lang.String algorithm)
throws java.security.SignatureException,
java.io.IOException,
java.security.InvalidKeyException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ субъекта, на котором осуществляется подпись запроса.algorithm - Имя алгоритма подписи. Если null, то алгоритм определяется по ключу.java.security.SignatureException - исключение возникает в случае, когда запрос уже
был подписан, либо возникла проблема с созданием подписиjava.io.IOException - исключение возникает в случае ошибки при кодировании
запроса (например, когда объекту генерации запроса не были переданы параметры
открытого ключа, либо имя субъекта)java.security.InvalidKeyException - исключение возникает в случае, когда закрытый
ключ не является ключом обмена или подписи алгоритма ГОСТ Р 34.10-2001 или
ГОСТ Р 34.10-2012java.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic void init(java.lang.String keyAlgName)
throws java.io.IOException
keyAlgName - Строковое представление алгоритма закрытого ключа,
соответствующего открытому.java.io.IOException - ошибка инициализацииpublic void initOLD(java.lang.String keyAlgName,
boolean isServer)
throws java.io.IOException
keyAlgName - Строковое представление алгоритма закрытого ключа,
соответствующего открытому.isServer - Если true, то будет создан сертификат аутентификации сервера,
иначе - клиента.java.io.IOException - ошибка инициализацииpublic void init(java.lang.String keyAlgName,
boolean isServer,
boolean isExchange)
throws java.io.IOException
keyAlgName - Строковое представление алгоритма закрытого ключа,
соответствующего открытому.isServer - Если true, то будет создан сертификат аутентификации сервера,
иначе - клиента.isExchange - Если true, то ключ обмена (используется только для RSA).java.io.IOException - ошибка инициализацииpublic void init(java.lang.String keyAlgName,
boolean isServer)
throws java.io.IOException
keyAlgName - Строковое представление алгоритма закрытого ключа,
соответствующего открытому.isServer - Если true, то будет создан сертификат аутентификации сервера,
иначе - клиента.java.io.IOException - ошибка инициализацииpublic boolean isServer()
public boolean isExchange()
public byte[] getEncoded()
public void printToBASE64(java.io.PrintStream out)
throws java.io.IOException,
java.security.SignatureException
out - Выходной поток, в который записывается подписанный запрос.java.io.IOException - исключение возникает в случае ошибки при кодировании в
BASE-64 кодировку подписанного запроса, либо при ошибке записи в потокjava.security.SignatureException - исключение возникает в том случае, когда запрос
еще не был подписанpublic void printToDER(java.io.PrintStream out)
throws java.io.IOException,
java.security.SignatureException
out - Выходной поток, в который записывается подписанный запрос.java.io.IOException - исключение возникает в случае ошибки записи в потокjava.security.SignatureException - исключение возникает в том случае, когда запрос
еще не был подписанpublic static byte[] getEncodedRootCert(java.lang.String httpAddress)
throws java.lang.Exception
httpAddress - Http-адрес центра сертификации (например,
"http://www.cryptopro.ru/certsrv/").java.lang.Exception - исключение возникает в случае ошибки при создании
соединения с сервером (например, если соединение не является
http-соединением)public byte[] getEncodedCert(java.lang.String httpAddress)
throws java.lang.Exception
httpAddress - Http-адрес центра сертификации (например,
"http://www.cryptopro.ru/certsrv/").java.security.SignatureException - исключение возникает в случае, когда передаваемый
центру запрос не был подписанjava.io.IOException - исключение возникает в случае ошибки при создании
соединения с сервером (например, если соединение не является
http-соединением)java.lang.Exceptionpublic static byte[] getEncodedCertFromBASE64(java.lang.String httpAddress,
java.io.InputStream req)
throws java.lang.Exception
httpAddress - Http-адрес центра сертификации (например,
"http://www.cryptopro.ru/certsrv/").req - входной поток, в котором содержится закодированный в BASE64
запрос.java.lang.Exception - исключение возникает в случае ошибки при создании
соединения с сервером (например, если соединение не является
http-соединением)public static byte[] getEncodedCertFromDER(java.lang.String httpAddress,
java.io.InputStream req)
throws java.lang.Exception
httpAddress - Http-адрес центра сертификации (например,
"http://www.cryptopro.ru/certsrv/").req - входной поток, в котором содержится закодированный в DER запрос.java.lang.Exception - исключение возникает в случае ошибки при создании
соединения с сервером (например, если соединение не является
http-соединением)public static int getIdExtended(java.lang.String page)
throws java.io.IOException
page - Страница ответа сервера.java.io.IOExceptionpublic static int getIdNew(java.lang.String page)
throws java.io.IOException
page - Страница ответа сервера.java.io.IOExceptionpublic static int getId(java.lang.String page)
throws java.io.IOException
page - Страница ответа сервера.java.io.IOExceptionpublic static byte[] httpGetFile(java.lang.String httpAddress,
ru.CryptoPro.JCPRequest.ca15.user.CAUser user)
throws java.lang.Exception
httpAddress - Http-адрес файла.user - Пользователь УЦ.java.lang.Exception - ошибки передачиpublic static byte[] httpGetFile(java.lang.String httpAddress,
ru.CryptoPro.JCPRequest.ca15.user.CAUser user,
java.util.Properties headers)
throws java.lang.Exception
httpAddress - Http-адрес файла.user - Пользователь УЦ.headers - Заголовки запроса.java.io.IOException - ошибки передачиjava.lang.Exceptionpublic byte[] getEncodedSelfCert(java.security.KeyPair keyPair,
java.lang.String name)
throws java.security.InvalidKeyException,
java.io.IOException,
java.security.SignatureException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
keyPair - Ключевая пара субъекта (она же издателя).name - Имя субъекта (оно же имя издателя) в виде строки, соответствующей
стандарту X.500 (например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.InvalidKeyException - исключение возникает в случае, когда открытый
ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012java.security.SignatureException - исключение возникает в случае ошибки при создании
подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в keyPairjava.security.NoSuchProviderExceptionpublic byte[] getEncodedSelfCert(java.security.KeyPair keyPair,
java.lang.String name,
java.lang.String algorithm)
throws java.security.InvalidKeyException,
java.io.IOException,
java.security.SignatureException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
keyPair - Ключевая пара субъекта (она же издателя).name - Имя субъекта (оно же имя издателя) в виде строки, соответствующей
стандарту X.500 (например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").algorithm - Имя алгоритма подписи. Если null, то алгоритм определяется
по ключу.java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.InvalidKeyException - исключение возникает в случае, когда открытый
ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012java.security.SignatureException - исключение возникает в случае ошибки при создании
подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в keyPairjava.security.NoSuchProviderExceptionpublic byte[] getEncodedSelfCert(java.security.KeyPair keyPair,
ru.CryptoPro.reprov.x509.X500Name name,
java.lang.String algorithm)
throws java.security.InvalidKeyException,
java.io.IOException,
java.security.SignatureException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
keyPair - Ключевая пара субъекта (она же издателя).name - Имя субъекта (оно же имя издателя) в виде строки, соответствующей
стандарту X.500 (например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").algorithm - Имя алгоритма подписи. Если null, то алгоритм определяется
по ключу.java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.InvalidKeyException - исключение возникает в случае, когда открытый
ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012java.security.SignatureException - исключение возникает в случае ошибки при создании
подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в keyPairjava.security.NoSuchProviderExceptionpublic byte[] generateCert(java.security.PrivateKey privateKey,
java.security.PublicKey pubKey,
java.lang.String subject,
java.lang.String issuer)
throws java.security.InvalidKeyException,
java.io.IOException,
java.security.SignatureException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ издателя, на котором осуществляется подпись
сертификата (ключ должен являться закрытым ключом подписи или обмена
алгоритма ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-2012).pubKey - Открытый ключ субъекта, для которого генерится сертификат (ключ
должен соответствовать закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012).subject - Имя субъекта в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").issuer - Имя издателя в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.InvalidKeyException - исключение возникает в случае, когда открытый
ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012java.security.SignatureException - исключение возникает в случае ошибки при создании
подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic byte[] generateCert(java.security.PrivateKey privateKey,
java.security.PublicKey pubKey,
java.lang.String subject,
java.lang.String issuer,
java.lang.String algorithm)
throws java.security.InvalidKeyException,
java.io.IOException,
java.security.SignatureException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ издателя, на котором осуществляется подпись
сертификата (ключ должен являться закрытым ключом подписи или обмена
алгоритма ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-2012).pubKey - Открытый ключ субъекта, для которого генерится сертификат (ключ
должен соответствовать закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012).subject - Имя субъекта в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").issuer - Имя издателя в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").algorithm - Имя алгоритма подписи. Если null, то алгоритм определяется
по ключу.java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.InvalidKeyException - исключение возникает в случае, когда открытый
ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012java.security.SignatureException - исключение возникает в случае ошибки при создании
подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic byte[] generateCertFromRequest(java.security.PrivateKey privateKey,
ru.CryptoPro.reprov.x509.X500Name issuer)
throws java.security.InvalidKeyException,
java.io.IOException,
java.security.SignatureException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ издателя, на котором осуществляется подпись
сертификата (ключ должен являться закрытым ключом подписи или обмена
алгоритма ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-2012).issuer - Имя издателя в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.InvalidKeyException - исключение возникает в случае, когда открытый
ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012java.security.SignatureException - исключение возникает в случае ошибки при создании
подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic byte[] generateCertFromRequest(java.security.PrivateKey privateKey,
java.lang.String issuer)
throws java.security.InvalidKeyException,
java.io.IOException,
java.security.SignatureException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ издателя, на котором осуществляется подпись
сертификата (ключ должен являться закрытым ключом подписи или обмена
алгоритма ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-2012).issuer - Имя издателя в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.InvalidKeyException - исключение возникает в случае, когда открытый
ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012java.security.SignatureException - исключение возникает в случае ошибки при создании
подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic byte[] generateCert(java.security.PrivateKey privateKey,
java.security.PublicKey pubKey,
ru.CryptoPro.reprov.x509.X500Name subject,
ru.CryptoPro.reprov.x509.X500Name issuer,
java.lang.String algorithm)
throws java.security.InvalidKeyException,
java.io.IOException,
java.security.SignatureException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ издателя, на котором осуществляется подпись
сертификата (ключ должен являться закрытым ключом подписи или обмена
алгоритма ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-2012).pubKey - Открытый ключ субъекта, для которого генерится сертификат (ключ
должен соответствовать закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012).subject - Имя субъекта в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").issuer - Имя издателя в виде строки, соответствующей стандарту X.500
(например, "CN=Ivanov, OU=Security, O=CryptoPro, C=RU").algorithm - Имя алгоритма подписи. Если null, то алгоритм определяется
по ключу.java.io.IOException - исключение возникает в случае ошибки при кодировании
имени субъекта (возможно, строковое представление имени не соответствует
стандарту X.500)java.security.InvalidKeyException - исключение возникает в случае, когда открытый
ключ не соответствует закрытому ключу подписи или обмена алгоритма ГОСТ Р
34.10-2001 или ГОСТ Р 34.10-2012java.security.SignatureException - исключение возникает в случае ошибки при создании
подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic void reset()
public static byte[] sign(java.security.PrivateKey privateKey,
byte[] data,
java.lang.String algorithm,
java.lang.String provider)
throws java.security.NoSuchAlgorithmException,
java.security.InvalidKeyException,
java.security.SignatureException,
java.security.NoSuchProviderException
privateKey - Закрытый ключ.data - Запрос.algorithm - Алгоритм подписи. Если null, то используется
DEFAULT_SIGN_ALGORITHM.java.security.InvalidKeyException - неверный тип ключаjava.security.SignatureException - ошибка создания подписиjava.security.NoSuchAlgorithmException - неверное имя алгоритма в privateKeyjava.security.NoSuchProviderExceptionpublic static ru.CryptoPro.JCP.ASN.PKIXCMP.CertificationRequest createRequest()
public static void setPublic2Request(ru.CryptoPro.JCP.ASN.PKIXCMP.CertificationRequest req,
ru.CryptoPro.JCP.ASN.PKIX1Explicit88.SubjectPublicKeyInfo keyInfo)
keyInfo - public key info.req - request to set in.public static void setSubject2Request(ru.CryptoPro.JCP.ASN.PKIXCMP.CertificationRequest req,
ru.CryptoPro.JCP.ASN.PKIX1Explicit88.RDNSequence name)
name - X500 name.req - request to set in.public static void setSign2Request(ru.CryptoPro.JCP.ASN.PKIXCMP.CertificationRequest req,
byte[] signature,
ru.CryptoPro.JCP.params.OID signatureParam)
req - request to set in.signature - signature.signatureParam - identifier of signature parameters.public static ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension createUsage(int mask)
throws java.io.IOException
mask - Маска.java.io.IOExceptionpublic static java.util.BitSet createKeyUsageBitSet(int mask)
mask - Маска флагов в который устанавливается keyUsage.public static ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension createExtUsage(java.util.Vector list)
throws java.io.IOException
list - Список типов использования.java.io.IOExceptionpublic static ru.CryptoPro.JCP.ASN.CertificateExtensions._extKeyUsage_ExtnType formExtKeyUsage(java.util.Vector list)
list - List to copy attributes from.public static ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Extension createBasic()
throws java.io.IOException
java.io.IOExceptionpublic void decodeRequest(byte[] req)
throws java.io.IOException
req - Запрос (ASN1).java.io.IOException