public bool VerifyProof(VerifyProofOptions options, JsonLdProcessorOptions processorOptions) { options.Proof["type"] = "https://w3c-ccg.github.io/ldp-bbs2020/context/v1#BbsBlsSignature2020"; var documentStatements = BbsBlsSignature2020Suite.CreateVerifyDocumentData(options.Document, processorOptions); var proofStatements = BbsBlsSignature2020Suite.CreateVerifyProofData(options.Proof, processorOptions); var transformedInputDocumentStatements = documentStatements.Select(TransformIdToBlankNode).ToArray(); var statementsToVerify = proofStatements.Concat(transformedInputDocumentStatements); var verificationMethod = BbsBlsSignature2020Suite.GetVerificationMethod(options.Proof, processorOptions); var proofData = Convert.FromBase64String(options.Proof["proofValue"].ToString()); var nonce = options.Proof["nonce"].ToString(); var verifyResult = BbsProvider.VerifyProof(new VerifyProofRequest( publicKey: verificationMethod.ToBlsKeyPair().GeyBbsKeyPair((uint)statementsToVerify.Count()), proof: proofData, messages: GetIndexedMessages(statementsToVerify.ToArray()).ToArray(), nonce: nonce)); return(verifyResult == SignatureProofStatus.Success); }
public Task <bool> VerifyProofAsync(VerifyProofOptions options, JsonLdProcessorOptions processorOptions) => Task.FromResult(VerifyProof(options, processorOptions));