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));