Класс JarSigner.Builder

Вложенный класс:
JarSigner
public static class JarSigner.Builder
extends Object

Изменяемый класс-строитель, который может создать неизменяемый JarSigner из различных параметров, связанных с подписью.

С:
9

Конструкторы

Конструктор Описание
Builder​(KeyStore.PrivateKeyEntry entry)

Создает объект JarSigner.Builder с объектом KeyStore.PrivateKeyEntry.

Builder​(PrivateKey privateKey, CertPath certPath)

Создает объект JarSigner.Builder с закрытым ключом и сертификационным путем.

Методы

Модификатор и тип Метод Описание
JarSigner build()

Создает объект JarSigner из параметров, установленных методами-сеттерами.

JarSigner.Builder digestAlgorithm​(String algorithm)

Устанавливает алгоритм дайджеста.

JarSigner.Builder digestAlgorithm​(String algorithm, Provider provider)

Устанавливает алгоритм дайджеста из указанного поставщика.

JarSigner.Builder eventHandler​(BiConsumer<String,​String> handler)

Устанавливает обработчик событий, который будет вызван при добавлении, подписи или обновлении JarEntry во время процесса подписи.

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".
Все имена свойств регистронезависимы.
Параметры:
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

Spec-Zone .ru
спецификации, руководства, описания, API