void createRSAKey() { int bits = jlimit (32, 512, bitSize.getText().getIntValue()); bitSize.setText (String (bits), dontSendNotification); // Create a key-pair... RSAKey publicKey, privateKey; RSAKey::createKeyPair (publicKey, privateKey, bits); // Test the new key on a piece of data... BigInteger testValue; testValue.parseString ("1234567890abcdef", 16); BigInteger encodedValue (testValue); publicKey.applyToValue (encodedValue); BigInteger decodedValue (encodedValue); privateKey.applyToValue (decodedValue); // ..and show the results.. String message; message << "Number of bits: " << bits << newLine << "Public Key: " << publicKey.toString() << newLine << "Private Key: " << privateKey.toString() << newLine << newLine << "Test input: " << testValue.toString (16) << newLine << "Encoded: " << encodedValue.toString (16) << newLine << "Decoded: " << decodedValue.toString (16) << newLine; rsaResultBox.setText (message, false); }
//============================================================================== static XmlElement decryptXML (String hexData, RSAKey rsaPublicKey) { BigInteger val; val.parseString (hexData, 16); RSAKey key (rsaPublicKey); jassert (key.isValid()); ScopedPointer<XmlElement> xml; if (! val.isZero()) { key.applyToValue (val); const MemoryBlock mb (val.toMemoryBlock()); if (CharPointer_UTF8::isValidString (static_cast<const char*> (mb.getData()), (int) mb.getSize())) xml = XmlDocument::parse (mb.toString()); } return xml != nullptr ? *xml : XmlElement("key"); }
int64 HiseJavascriptEngine::RootObject::getOctalValue(const String& s) { BigInteger b; b.parseString(s, 8); return b.toInt64(); }