Ejemplo n.º 1
0
        public void Serialize(IValueWriter writer, IPublicKeyCrypto crypto)
        {
            if (writer.WriteBool (D != null))
            {
                writer.WriteBytes (crypto.Encrypt (D));
                writer.WriteBytes (crypto.Encrypt (DP));
                writer.WriteBytes (crypto.Encrypt (DQ));
                writer.WriteBytes (crypto.Encrypt (InverseQ));
                writer.WriteBytes (crypto.Encrypt (P));
                writer.WriteBytes (crypto.Encrypt (Q));
            }

            if (writer.WriteBool (this.publicKey != null))
            {
                writer.WriteBytes (crypto.Encrypt (Exponent));

                int first = Modulus.Length / 2;
                writer.WriteBytes (crypto.Encrypt (Modulus.Copy (0, first)));
                writer.WriteBytes (crypto.Encrypt (Modulus.Copy (first, Modulus.Length - first)));
            }
        }