コード例 #1
0
 public void Read(BinaryReader reader)
 {
     this.signingAlgorithm = reader.ReadUInt32();
     this.hashAlgorithm    = reader.ReadUInt32();
     this.remainingSize    = reader.ReadUInt32();
     this.header           = new GeneralKeyHeader(reader);
     modulus = reader.ReadBytes((int)(this.header.BitLength / LargeChunkDenominator));
     ReverseArray(modulus);
 }
コード例 #2
0
 public PrivateKeyData(RSAParameters parameters, int keySize)
 {
     byte[] exponent     = parameters.Exponent;
     byte[] exponentReal = new byte[4];
     exponent.CopyTo(exponentReal, 0);
     Array.Reverse(exponentReal);
     this.header       = new GeneralKeyHeader(GeneralKeyHeader.KeyTypes.PrivateKey, (uint)keySize, ((uint)exponentReal[0] | (uint)exponentReal[1] << 8 | (uint)exponentReal[2] << 16 | (uint)exponentReal[3] << 24));
     this.modulus      = parameters.Modulus;
     this.prime1       = parameters.P;
     this.prime2       = parameters.Q;
     this.exponent1    = parameters.DP;
     this.exponent2    = parameters.DQ;
     this.coefficient1 = parameters.InverseQ;
     this.coefficient2 = parameters.D;
 }
コード例 #3
0
 public PublicKeyData(RSAParameters parameters, int keySize)
 {
     this.signingAlgorithm = RSASigningAlgorithmId;
     this.hashAlgorithm    = SHA1HashAlgorithmId;
     byte[] exponent     = parameters.Exponent;
     byte[] exponentReal = new byte[4];
     exponent.CopyTo(exponentReal, 0);
     Array.Reverse(exponentReal);
     this.header = new GeneralKeyHeader(
         GeneralKeyHeader.KeyTypes.PublicKey,
         (uint)keySize,
         ((uint)exponentReal[0] | (uint)exponentReal[1] << 8 | (uint)exponentReal[2] << 16 | (uint)exponentReal[3] << 24));
     this.modulus       = parameters.Modulus;
     this.remainingSize = (uint)(Marshal.SizeOf(typeof(GeneralKeyHeader)) + modulus.Length);
 }
コード例 #4
0
 public void Read(BinaryReader reader)
 {
     this.header  = new GeneralKeyHeader(reader);
     modulus      = reader.ReadBytes((int)(this.header.BitLength / LargeChunkDenominator));
     prime1       = reader.ReadBytes((int)(this.header.BitLength / SmallChunkDenominator));
     prime2       = reader.ReadBytes((int)(this.header.BitLength / SmallChunkDenominator));
     exponent1    = reader.ReadBytes((int)(this.header.BitLength / SmallChunkDenominator));
     exponent2    = reader.ReadBytes((int)(this.header.BitLength / SmallChunkDenominator));
     coefficient1 = reader.ReadBytes((int)(this.header.BitLength / SmallChunkDenominator));
     coefficient2 = reader.ReadBytes((int)(this.header.BitLength / LargeChunkDenominator));
     Array.Reverse(modulus);
     Array.Reverse(prime1);
     Array.Reverse(prime2);
     Array.Reverse(exponent1);
     Array.Reverse(exponent2);
     Array.Reverse(coefficient1);
     Array.Reverse(coefficient2);
 }