Обновление: Критическим аспектом является то, что kp
(пара ключей) генерируется "вне" этого кода.Этот код является функцией onclick, тогда как kp
определен в коде, который устанавливает onclick.Не должно иметь значения, но вот в чем проблема, и это необъяснимо.
Что не так со следующим кодом?Он всегда печатает (регистрирует) ложь для проверки b
, даже если данные - это та же строка "foo"
, а подпись та же, что была сгенерирована ранее в коде sig
val sig = Signature.getInstance("SHA256withECDSA").run {
initSign(kp.private)
update("foo".toByteArray())
sign()
}
Log.d(tag, "sig: " + sig.toString())
val o = Signature.getInstance("SHA256withECDSA")
o.initVerify(kp.public)
o.update("foo".toByteArray())
val b = o.verify(sig)
Log.d(tag, b.toString())