public void Generate_Should_ReturnHexStringOf32SHA512()
        {
            var cardCrypto = new VirgilCardCrypto();
            var payload    = this.faker.Random.Bytes(64);
            var sha512     = cardCrypto.GenerateSHA512(payload);
            var id         = Bytes.ToString(sha512.Take(32).ToArray(), StringEncoding.HEX);

            Assert.AreEqual(id, CardUtils.GenerateCardId(cardCrypto, payload));
        }
예제 #2
0
        public void SelfSign_Should_AddValidSignature()
        {
            //STC-8
            var rawSignedModel = faker.PredefinedRawSignedModel(null, false, false, false);
            var crypto         = new VirgilCrypto();
            var signer         = new ModelSigner(new VirgilCardCrypto());

            Assert.AreEqual(rawSignedModel.Signatures.Count, 0);

            signer.SelfSign(rawSignedModel, faker.PredefinedKeyPair().PrivateKey);
            Assert.AreEqual(rawSignedModel.Signatures.Count, 1);
            var selfSignature = rawSignedModel.Signatures.First();
            var cardId        = CardUtils.GenerateCardId(new VirgilCardCrypto(), rawSignedModel.ContentSnapshot);

            Assert.AreEqual(selfSignature.Signer, ModelSigner.SelfSigner);
            Assert.AreEqual(selfSignature.Snapshot, null);
            Assert.True(crypto.VerifySignature(
                            selfSignature.Signature,
                            rawSignedModel.ContentSnapshot,
                            faker.PredefinedKeyPair().PublicKey)
                        );
        }