示例#1
0
        private SenderKeyState(uint id, uint iteration, byte[] chainKey,
                               ECPublicKey signatureKeyPublic,
                               May <ECPrivateKey> signatureKeyPrivate)
        {
            SenderKeyStateStructure.Types.SenderChainKey senderChainKeyStructure =
                SenderKeyStateStructure.Types.SenderChainKey.CreateBuilder()
                .SetIteration(iteration)
                .SetSeed(ByteString.CopyFrom(chainKey))
                .Build();

            SenderKeyStateStructure.Types.SenderSigningKey.Builder signingKeyStructure =
                SenderKeyStateStructure.Types.SenderSigningKey.CreateBuilder()
                .SetPublic(ByteString.CopyFrom(signatureKeyPublic.Serialize()));

            if (signatureKeyPrivate.HasValue)
            {
                signingKeyStructure.SetPrivate(ByteString.CopyFrom(signatureKeyPrivate.ForceGetValue().Serialize()));
            }

            this.senderKeyStateStructure = SenderKeyStateStructure.CreateBuilder()
                                           .SetSenderKeyId(id)
                                           .SetSenderChainKey(senderChainKeyStructure)
                                           .SetSenderSigningKey(signingKeyStructure)
                                           .Build();
        }
        private SenderKeyState(uint id, uint iteration, byte[] chainKey,
                               IEcPublicKey signatureKeyPublic,
                               May <IEcPrivateKey> signatureKeyPrivate)
        {
            SenderKeyStateStructure.Types.SenderChainKey senderChainKeyStructure = new SenderKeyStateStructure.Types.SenderChainKey
            {
                Iteration = iteration,
                Seed      = ByteString.CopyFrom(chainKey)
            };

            SenderKeyStateStructure.Types.SenderSigningKey signingKeyStructure = new SenderKeyStateStructure.Types.SenderSigningKey
            {
                Public = ByteString.CopyFrom(signatureKeyPublic.Serialize())
            };

            if (signatureKeyPrivate.HasValue)
            {
                signingKeyStructure.Private = ByteString.CopyFrom(signatureKeyPrivate.ForceGetValue().Serialize());
            }

            _senderKeyStateStructure = new SenderKeyStateStructure
            {
                SenderKeyId      = id,
                SenderChainKey   = senderChainKeyStructure,
                SenderSigningKey = signingKeyStructure
            };
        }
        public void SetSenderChainKey(SenderChainKey chainKey)
        {
            SenderKeyStateStructure.Types.SenderChainKey senderChainKeyStructure = new SenderKeyStateStructure.Types.SenderChainKey
            {
                Iteration = chainKey.GetIteration(),
                Seed      = ByteString.CopyFrom(chainKey.GetSeed())
            };

            _senderKeyStateStructure.SenderChainKey = senderChainKeyStructure;
        }
示例#4
0
        public void SetSenderChainKey(SenderChainKey chainKey)
        {
            SenderKeyStateStructure.Types.SenderChainKey senderChainKeyStructure =
                SenderKeyStateStructure.Types.SenderChainKey.CreateBuilder()
                .SetIteration(chainKey.GetIteration())
                .SetSeed(ByteString.CopyFrom(chainKey.GetSeed()))
                .Build();

            this.senderKeyStateStructure = senderKeyStateStructure.ToBuilder()
                                           .SetSenderChainKey(senderChainKeyStructure)
                                           .Build();
        }