Класс JarSigner.Builder
- java.lang.Object
-
- jdk.security.jarsigner.JarSigner.Builder
- Вложенный класс:
- JarSigner
public static class JarSigner.Builder extends Object
Изменяемый класс-строитель, который может создать неизменяемый JarSigner из различных параметров, связанных с подписью.
- С:
- 9
Конструкторы
| Конструктор | Описание |
|---|---|
Builder(KeyStore.PrivateKeyEntry entry) | Создает объект |
Builder(PrivateKey privateKey,
CertPath certPath) | Создает объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
JarSigner | build() | Создает объект |
JarSigner.Builder | digestAlgorithm(String algorithm) | Устанавливает алгоритм дайджеста. |
JarSigner.Builder | digestAlgorithm(String algorithm,
Provider provider) | Устанавливает алгоритм дайджеста из указанного поставщика. |
JarSigner.Builder | eventHandler(BiConsumer<String,String> handler) | Устанавливает обработчик событий, который будет вызван при добавлении, подписи или обновлении |
static String | getDefaultDigestAlgorithm() | Получает стандартный алгоритм дайджеста. |
static String | getDefaultSignatureAlgorithm(PrivateKey key) | Получает стандартный алгоритм подписи для закрытого ключа. |
JarSigner.Builder | setProperty(String key,
String value) | Устанавливает дополнительное свойство, специфичное для реализации, указанное с помощью указанного ключа. |
JarSigner.Builder | signatureAlgorithm(String algorithm) | Устанавливает алгоритм подписи. |
JarSigner.Builder | signatureAlgorithm(String algorithm,
Provider provider) | Устанавливает алгоритм подписи из указанного поставщика. |
JarSigner.Builder | signerName(String name) | Устанавливает имя подписывающего. |
JarSigner.Builder | tsa(URI uri) | Устанавливает URI центра по времени (TSA). |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
Построитель
public Builder(KeyStore.PrivateKeyEntry entry)
Создаёт объект JarSigner.Builder с объектом KeyStore.PrivateKeyEntry.
- Параметры:
-
entry- объектKeyStore.PrivateKeyEntryподписывающего лица.
Построитель
public Builder(PrivateKey privateKey,
CertPath certPath) Создаёт объект JarSigner.Builder с закрытым ключом и цепочкой сертификатов.
- Параметры:
-
privateKey- закрытый ключ подписывающего лица. -
certPath- цепочка сертификатов подписывающего лица. - Исключения:
-
IllegalArgumentException- еслиcertPathпуста или алгоритмprivateKeyне соответствует алгоритмуPublicKeyв сертификате конечного объекта (первый сертификат вcertPath).
Методы
digestAlgorithm
public JarSigner.Builder digestAlgorithm(String algorithm)
throws NoSuchAlgorithmException Устанавливает алгоритм хеширования. Если алгоритм хеширования не задан, используется алгоритм по умолчанию, возвращаемый методом getDefaultDigestAlgorithm().
- Параметры:
-
algorithm- стандартное имя алгоритма. См. разделMessageDigestв документации по стандартным именам алгоритмов Java Cryptography Architecture для получения информации о стандартных именах алгоритмов. - Возвращает:
- сам объект
JarSigner.Builder. - Исключения:
-
NoSuchAlgorithmException- еслиalgorithmнедоступен.
digestAlgorithm
public JarSigner.Builder digestAlgorithm(String algorithm,
Provider provider)
throws NoSuchAlgorithmException Устанавливает алгоритм хеширования из указанного поставщика. Если алгоритм хеширования не задан, используется алгоритм по умолчанию, возвращаемый методом getDefaultDigestAlgorithm().
- Параметры:
-
algorithm- стандартное имя алгоритма. См. разделMessageDigestв документации по стандартным именам алгоритмов Java Cryptography Architecture для получения информации о стандартных именах алгоритмов. -
provider- поставщик. - Возвращает:
- сам объект
JarSigner.Builder. - Исключения:
-
NoSuchAlgorithmException- еслиalgorithmнедоступен в указанном поставщике.
signatureAlgorithm
public JarSigner.Builder signatureAlgorithm(String algorithm)
throws NoSuchAlgorithmException Устанавливает алгоритм подписи. Если алгоритм подписи не задан, используется алгоритм подписи по умолчанию, возвращаемый методом getDefaultSignatureAlgorithm(java.security.PrivateKey) для закрытого ключа.
- Параметры:
-
algorithm- стандартное имя алгоритма. См. разделSignatureв документации по стандартным именам алгоритмов Java Cryptography Architecture для получения информации о стандартных именах алгоритмов. - Возвращает:
- сам объект
JarSigner.Builder. - Исключения:
-
NoSuchAlgorithmException- еслиalgorithmнедоступен. -
IllegalArgumentException- еслиalgorithmнесовместим с алгоритмом закрытого ключа подписывающего лица.
signatureAlgorithm
public JarSigner.Builder signatureAlgorithm(String algorithm,
Provider provider)
throws NoSuchAlgorithmException Устанавливает алгоритм подписи из указанного поставщика. Если алгоритм подписи не задан, используется алгоритм подписи по умолчанию, возвращаемый методом getDefaultSignatureAlgorithm(java.security.PrivateKey) для закрытого ключа.
- Параметры:
-
algorithm- стандартное имя алгоритма. См. разделSignatureв документации по стандартным именам алгоритмов Java Cryptography Architecture для получения информации о стандартных именах алгоритмов. -
provider- поставщик. - Возвращает:
- сам объект
JarSigner.Builder. - Исключения:
-
NoSuchAlgorithmException- еслиalgorithmнедоступен в указанном поставщике. -
IllegalArgumentException- еслиalgorithmнесовместим с алгоритмом закрытого ключа подписывающего лица.
tsa
public JarSigner.Builder tsa(URI uri)
Устанавливает URI Уполномоченного центра по отметке времени (TSA).
- Параметры:
-
uri- URI. - Возвращает:
- сам объект
JarSigner.Builder.
signerName
public JarSigner.Builder signerName(String name)
Устанавливает имя подписывающего лица. Имя будет использовано в качестве базового имени для файлов подписи. Все символы в нижнем регистре будут преобразованы в верхний регистр для имён файлов подписи. Если имя подписывающего лица не указано, используется строка "SIGNER".
- Параметры:
-
name- имя подписывающего лица. - Возвращает:
- сам объект
JarSigner.Builder. - Исключения:
-
IllegalArgumentException- еслиnameпустое или имеет размер больше 8, или содержит символы, не из набора "a-zA-Z0-9_-".
eventHandler
public JarSigner.Builder eventHandler(BiConsumer<String,String> handler)
Устанавливает обработчик событий, который будет срабатывать при добавлении, подписи или обновлении JarEntry во время процесса подписи.
Обработчик может использоваться для отображения хода подписи. Первый аргумент обработчика может быть "adding", "signing" или "updating", а второй аргумент — имя обрабатываемой JarEntry.
- Параметры:
-
handler- обработчик событий. - Возвращает:
- сам объект
JarSigner.Builder.
setProperty
public JarSigner.Builder setProperty(String key,
String value) Устанавливает дополнительное свойство, специфичное для реализации, указанное заданным ключом.
- Примечание по реализации:
- Эта реализация поддерживает следующие свойства:
- "tsaDigestAlg": алгоритм хеширования данных отметки времени в запросе к службе отметки времени. Значение по умолчанию — такое же, как результат вызова
getDefaultDigestAlgorithm(). - "tsaPolicyId": TSAPolicyID для Уполномоченного центра по отметке времени. Значение по умолчанию отсутствует.
- "internalsf": "true", если файл .SF включён внутри блока подписи, "false" в противном случае. Значение по умолчанию "false".
- "sectionsonly": "true", если файл .SF содержит только значения хешей для каждого раздела манифеста, а не для всего манифеста, "false" в противном случае. Значение по умолчанию "false".
- "tsaDigestAlg": алгоритм хеширования данных отметки времени в запросе к службе отметки времени. Значение по умолчанию — такое же, как результат вызова
- Параметры:
-
key- имя свойства. -
value- значение свойства. - Возвращает:
- сам объект
JarSigner.Builder. - Исключения:
-
UnsupportedOperationException- если ключ не поддерживается этой реализацией. -
IllegalArgumentException- если значение не принимается в качестве допустимого значения для этого ключа.
getDefaultDigestAlgorithm
public static String getDefaultDigestAlgorithm()
Возвращает алгоритм хеширования по умолчанию.
- Примечание по реализации:
- Эта реализация возвращает "SHA-256". Значение может измениться в будущем.
- Возвращает:
- алгоритм хеширования по умолчанию.
getDefaultSignatureAlgorithm
public static String getDefaultSignatureAlgorithm(PrivateKey key)
Возвращает алгоритм подписи по умолчанию для закрытого ключа. Например, SHA256withRSA для 2048-битного ключа RSA и SHA384withECDSA для 384-битного ключа EC.
- Примечание по реализации:
- Эта реализация использует сравнимую надёжность, как определено в таблицах 2 и 3 NIST SP 800-57 Часть 1-Rev.4. В частности, если у DSA или RSA ключ имеет размер больше 7680 бит, или у EC ключ имеет размер больше или равен 512 бит, SHA-512 будет использоваться как функция хеширования для подписи. Если у DSA или RSA ключ имеет размер больше 3072 бит, или у EC ключ имеет размер больше или равен 384 бит, SHA-384 будет использоваться. В противном случае используется SHA-256. Значение может измениться в будущем.
- Параметры:
-
key- закрытый ключ. - Возвращает:
- алгоритм подписи по умолчанию. Возвращает null, если алгоритм подписи по умолчанию не найден. В этом случае, необходимо вызвать метод
signatureAlgorithm(java.lang.String)для указания алгоритма подписи. В противном случае, методbuild()выбросит исключениеIllegalArgumentException.
build
public JarSigner build()
Создаёт объект JarSigner из параметров, заданных методами-сеттерами.
Этот метод не изменяет внутреннего состояния объекта Builder и может вызываться несколько раз для генерации нескольких объектов JarSigner. После вызова этого метода, вызов любого метода на этом объекте Builder не повлияет на новый созданный объект JarSigner.
- Возвращает:
- объект
JarSigner. - Исключения:
-
IllegalArgumentException- если алгоритм подписи не установлен и не может быть получен из закрытого ключа с помощью методаgetDefaultSignatureAlgorithm(java.security.PrivateKey).
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.jartool/jdk/security/jarsigner/JarSigner.Builder.html