Google / Tink: как использовать открытый ключ для проверки подписи - PullRequest
0 голосов
/ 09 ноября 2018

Мы хотим использовать библиотеку Tink в нашем проекте, чтобы иметь возможность проверять некоторые входящие подписи с открытым ключом.

Вот что у нас есть:

  1. Открытый ключ в виде строки
  2. Сама подпись
  3. Открытый текст

Изучив документацию Tink, мы не можем понять, как загрузить строку открытого ключа, чтобы она могла использоваться PublicKeyVerifyFactory.

Кто-нибудь делал что-нибудь подобное? Вы нашли какие-либо примеры в Интернете, которые могли бы указать нам правильное направление?

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Фрагмент примера кода для иллюстрации:

public static boolean verify(byte[] data, byte[] signature, KeysetHandle publicKeysetHandle, CIPHER_ASYMMETRIC_ALGOS algo_chosen) throws IOException, GeneralSecurityException {
    TinkConfig.register();
    boolean status_verification = False;


    try {
        PublicKeyVerify verifier = PublicKeyVerifyFactory.getPrimitive( publicKeysetHandle);
    verifier.verify(signature, data);
        status_verification = True;
    } catch (GeneralSecurityException e) {
       status_verification = False;
    }


    return status_verification;
}

// Предполагается, что у вас уже есть подпись в байтах.

Использование:



boolean status_verification = verify(data, signature, publicKeysetHandle);

if(status_verification == True){
    System.out.println(“status_verification: PASS”);
} else {
    System.out.println(“status_verification: FAIL”);
}

0 голосов
/ 18 января 2019

Tink хранит открытые ключи в protobuf. На днях я напишу некоторый код, который позволяет конвертировать обычные форматы открытых ключей, такие как PEM или JWK, в protobuf, но до тех пор я боюсь, что вам придется писать код самостоятельно (и вносить свой вклад!).

...