У меня есть код ниже, который я использую, чтобы подписать некоторые полезные данные в JavaScript, используя алгоритм подписи ed25519
var nacl=require("tweetnacl")
var keys=nacl.sign.keyPair()
var TextEncoder= require('util').TextEncoder;
var documentId = "77ccbf5e-4ddd-4092-b813-ac06084a3eb0"
const bs58 = require('bs58')
var bufferOutput=buf2hex(keys.publicKey.buffer)
const bytes = Buffer.from(bufferOutput, 'hex')
const pub = bs58.encode(bytes)
console.log("public key",pub)
var uri = "77ccbf5e-4ddd-4092-b813-ac06084a3eb0#keys-1"
var document = {
"id": documentId,
"publicKey": [
{
"id": uri,
"type": "Ed25519VerificationKey2018",
"controller": documentId,
"publicKeyBase58": pub
}
]
}
var uint8array = new TextEncoder("utf-8").encode(document);
var signature=nacl.sign(uint8array, keys.secretKey)
console.log("signature",bs58.encode(Buffer.from(buf2hex(signature),'hex')))
Но когда я пытаюсь проверить подпись внутри kotlin / java, используя net.i2p.crypto.eddsa.spec.EdDSAPublicKeySpec
, это говорит о том, что моя спецификация ключей не поддерживается.
Есть ли способ подписать пакет в javascript и проверить в java / kotlin?