コード例 #1
0
 /// pad binary representation to given size
 inline void Pad(BinaryData& data, size_t uiTargetSize)
 {
    if (data.size() < uiTargetSize)
    {
       data.reserve(uiTargetSize);
       data.insert(data.begin(), uiTargetSize - data.size(), 0);
    }
 }
コード例 #2
0
BigInteger Helper::CalcLowerU(const BigInteger& A, const BigInteger& B,
                              unsigned int uiPadSize)
{
   // u = SHA1(PAD(A) | PAD(B))
   BinaryData temp;
   Helper::ToBinaryData(A, temp);
   Helper::Pad(temp, uiPadSize);

   BinaryData temp2;
   Helper::ToBinaryData(B, temp2);
   Helper::Pad(temp2, uiPadSize);

   temp.insert(temp.end(), temp2.begin(), temp2.end());

   BinaryData ubin = Sha1(temp);
   return Helper::ToInteger<BigInteger>(ubin);
}