void ItemCircleAnimation::setupLetters() { this->letterList = new LetterList(); QString s = Colors::tickerText; int len = s.length(); int i = 0; for (; i < this->letterCount - len; i += len) for (int l=0; l<len; l++) createLetter(s[l].toLatin1()); // Fill inn with blanks: for (; i < this->letterCount; ++i) createLetter(' '); }
const Shape HersheyGenerator::createText(const char *text) { if(ascii.size() == 0) init(); const char *ptr = text; float x = 0; Shape textShape; while(*ptr) { int code = ascii[*ptr]; signed char *sptr = HersheyGenerator::offsets[code]; int width = sptr[4] - sptr[3]; Shape shape = createLetter(code).translate(vec2(x - sptr[3],0)); textShape = textShape.concat(shape); x += width; ptr++; } return textShape; }
int main (int argc, char **argv) { try { XMLPlatformUtils::Initialize(); #ifndef XSEC_NO_XALAN XalanTransformer::initialize(); #endif XSECPlatformUtils::Initialise(); } catch (const XMLException &e) { cerr << "Error during initialisation of Xerces" << endl; cerr << "Error Message = : " << e.getMessage() << endl; } // Create a blank Document DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(MAKE_UNICODE_STRING("Core")); // Create a letter DOMDocument *doc = createLetter(impl); try { /* Create the cipher object that we need */ XSECProvider prov; XENCCipher *cipher; cipher = prov.newCipher(doc); /* Now generate a random key that we can use to encrypt the element * * First check the status of the random generation in OpenSSL */ if (RAND_status() != 1) { cerr << "OpenSSL random generation not properly initialised" << endl; exit(1); } unsigned char keyBuf[24]; if (RAND_bytes(keyBuf, 24) == 0) { cerr << "Error obtaining 24 bytes of random from OpenSSL" << endl; exit(1); } /* Wrap this in a Symmetric 3DES key */ OpenSSLCryptoSymmetricKey * key = new OpenSSLCryptoSymmetricKey(XSECCryptoSymmetricKey::KEY_3DES_192); key->setKey(keyBuf, 24); cipher->setKey(key); /* Encrypt the element that needs to be hidden */ cipher->encryptElement(g_toEncrypt, ENCRYPT_3DES_CBC); /* Now lets create an EncryptedKey element to hold the generated key */ /* First lets load the public key in the certificate */ OpenSSLCryptoX509 * x509 = new OpenSSLCryptoX509(); x509->loadX509Base64Bin(cert, (unsigned int) strlen(cert)); /* Now set the Key Encrypting Key (NOTE: Not the normal key) */ cipher->setKEK(x509->clonePublicKey()); /* Now do the encrypt, using RSA with PKCS 1.5 padding */ XENCEncryptedKey * encryptedKey = cipher->encryptKey(keyBuf, 24, ENCRYPT_RSA_15); /* * Add the encrypted Key to the previously created EncryptedData, which * we first retrieve from the cipher object. This will automatically create * the appropriate <KeyInfo> element within the EncryptedData */ XENCEncryptedData * encryptedData = cipher->getEncryptedData(); encryptedData->appendEncryptedKey(encryptedKey); } catch (XSECException &e) { char * msg = XMLString::transcode(e.getMsg()); cerr << "An error occurred during an encryption operation\n Message: " << msg << endl; exit(1); } /* Output */ docSetup(doc); cout << doc; return 0; }