Tpm2Lib.Tpm2.Sign C# (CSharp) Method

Sign() private method

private Sign ( TpmHandle keyHandle, byte digest, ISigSchemeUnion inScheme, TkHashcheck validation ) : ISignatureUnion
keyHandle TpmHandle
digest byte
inScheme ISigSchemeUnion
validation TkHashcheck
return ISignatureUnion
        public ISignatureUnion Sign(
            TpmHandle keyHandle,
            byte[] digest,
            ISigSchemeUnion inScheme,
            TkHashcheck validation
        )
        {
            Tpm2SignRequest inS = new Tpm2SignRequest();
            inS.keyHandle = keyHandle;
            inS.digest = digest;
            inS.inScheme = inScheme;
            inS.validation = validation;
            TpmStructureBase outSBase;
            DispatchMethod(TpmCc.Sign, (TpmStructureBase) inS, typeof(Tpm2SignResponse), out outSBase, 1, 0);
            Tpm2SignResponse outS = (Tpm2SignResponse) outSBase;
            return outS.signature;
        }
        /// <summary>

Usage Example

Exemplo n.º 1
0
        TkVerified SignApproval(Tpm2 tpm, byte[] approvedPolicy, byte[] policyRef,
                                TpmHandle hSigKey, ISigSchemeUnion scheme = null)
        {
            byte[]    name, qname;
            TpmPublic pub = tpm.ReadPublic(hSigKey, out name, out qname);

            byte[] dataToSign = Globs.Concatenate(approvedPolicy, policyRef);
            byte[] aHash      = CryptoLib.HashData(pub.nameAlg, dataToSign);

            // Create an authorization certificate for the "approvedPolicy"
            var sig = tpm.Sign(hSigKey, aHash, scheme, new TkHashcheck());

            return(tpm.VerifySignature(hSigKey, aHash, sig));
        }
Tpm2