Example #1
0
QString InttoBinary(const QString &in)  //assumes valid integer entry!
{
    QString out;

    std::string temp = in.toStdString();
    BigUnsigned val = stringToBigUnsigned(temp);    //need BigUnsigned for arbitrary
                                                    //length integers

    BigUnsigned rem;

    while(val > 0)
    {
       rem = val % 2;
       if(rem == 0)
           out.prepend("0");
       else
           out.prepend("1");

       val /= 2;

    }

    while(out.size() % 8 != 0)
        out.prepend("0");

    return out;




}
Example #2
0
SecureArray QCACryptoInterface::sharedDHKey(const QString &prime, const QString &base, const QString &secret)
{
    BigUnsigned primeNumber = stringToBigUnsigned(prime.toStdString());
    BigInteger baseNumber = stringToBigUnsigned(base.toStdString());
    BigUnsigned secretNumber = stringToBigUnsigned(secret.toStdString());
    BigUnsigned result = modexp(baseNumber, secretNumber, primeNumber);

    QByteArray key;

    BigUnsigned result2(result);
    while (result2 !=  0) {
         char rest = (result2 % 256).toUnsignedShort();
         key.prepend(rest);
         result2 = result2 / 256;
    }

    int size = key.size();
    return key;
}
Example #3
0
BigInteger stringToBigInteger(const std::string &s) {
	// Recognize a sign followed by a BigUnsigned.
	return (s[0] == '-') ? BigInteger(stringToBigUnsigned(s.substr(1, s.length() - 1)), BigInteger::negative)
		: (s[0] == '+') ? BigInteger(stringToBigUnsigned(s.substr(1, s.length() - 1)))
		: BigInteger(stringToBigUnsigned(s));
}