Существует ли стандартная функция подписи для функции проверки цифровой подписи?
Является ли один из них (или что-то еще) более стандартным, чем альтернативы?
verify(message, signature, publicKey)
против
verify(signature, message, publicKey)
1 ответ
Я бы пошел на:
verify(publicKey, message, signature)
и за этим стоит объективная аргументация. Обычно вы сначала должны предоставить открытый ключ (например, в init
метод в случае Java, то сами данные (например, в update
метод) и, наконец, вы verify
фактическая подпись. Обратите внимание, что publicKey
часто статичен; Я лично предпочитаю те в начале метода.
Аналогично генерация подписи будет:
sign(privateKey, message): signature
как видите, красиво симметрично.
И так как вы просите стандарт:
RSASSA-PSS-VERIFY ((n, e), M, S)
где (n, e)
это открытый ключ. Это прямо из RFC 3447, описывающего спецификации шифрования RSA.