コード例 #1
0
ファイル: ECDsa.cs プロジェクト: zhengger/AntShares
 private BigInteger CalculateE(BigInteger n, byte[] message)
 {
     int messageBitLength = message.Length * 8;
     BigInteger trunc = new BigInteger(message.Reverse().Concat(new byte[1]).ToArray());
     if (n.GetBitLength() < messageBitLength)
     {
         trunc >>= messageBitLength - n.GetBitLength();
     }
     return trunc;
 }
コード例 #2
0
ファイル: ECDsa.cs プロジェクト: erikzhang/IceWallet
 private static ECPoint SumOfTwoMultiplies(ECPoint P, BigInteger k, ECPoint Q, BigInteger l)
 {
     int m = Math.Max(k.GetBitLength(), l.GetBitLength());
     ECPoint Z = P + Q;
     ECPoint R = P.Curve.Infinity;
     for (int i = m - 1; i >= 0; --i)
     {
         R = R.Twice();
         if (k.TestBit(i))
         {
             if (l.TestBit(i))
                 R = R + Z;
             else
                 R = R + P;
         }
         else
         {
             if (l.TestBit(i))
                 R = R + Q;
         }
     }
     return R;
 }