本文整理汇总了C++中SymmetricKey::getKeyBits方法的典型用法代码示例。如果您正苦于以下问题:C++ SymmetricKey::getKeyBits方法的具体用法?C++ SymmetricKey::getKeyBits怎么用?C++ SymmetricKey::getKeyBits使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SymmetricKey
的用法示例。
在下文中一共展示了SymmetricKey::getKeyBits方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testDeriveKnownVector
void ECDHTests::testDeriveKnownVector()
{
ECPublicKey* pubKeya = (ECPublicKey*) ecdh->newPublicKey();
ECPublicKey* pubKeyb = (ECPublicKey*) ecdh->newPublicKey();
ECPrivateKey* privKeya = (ECPrivateKey*) ecdh->newPrivateKey();
ECPrivateKey* privKeyb = (ECPrivateKey*) ecdh->newPrivateKey();
// Reconstruct public and private key for Alice
ByteString ec = "06082a8648ce3d030107"; // X9.62 prime256v1
ByteString da = "c88f01f510d9ac3f70a292daa2316de544e9aab8afe84049c62a9c57862d1433";
// add 04 (ASN_String) <len+1> 04 (UNCOMPRESSED) in front!
ByteString qa = "044104dad0b65394221cf9b051e1feca5787d098dfe637fc90b9ef945d0c37725811805271a0461cdb8252d61f1c456fa3e59ab1f45b33accf5f58389e0577b8990bb3";
pubKeya->setEC(ec);
pubKeya->setQ(qa);
privKeya->setEC(ec);
privKeya->setD(da);
// Reconstruct public and private key for Bob
ByteString db = "c6ef9c5d78ae012a011164acb397ce2088685d8f06bf9be0b283ab46476bee53";
ByteString qb = "044104d12dfb5289c8d4f81208b70270398c342296970a0bccb74c736fc7554494bf6356fbf3ca366cc23e8157854c13c58d6aac23f046ada30f8353e74f33039872ab";
pubKeyb->setEC(ec);
pubKeyb->setQ(qb);
privKeyb->setEC(ec);
privKeyb->setD(db);
// Test
ByteString expected = "d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de";
SymmetricKey* sa;
CPPUNIT_ASSERT(ecdh->deriveKey(&sa, pubKeya, privKeyb));
CPPUNIT_ASSERT(sa->getKeyBits() == expected);
SymmetricKey* sb;
CPPUNIT_ASSERT(ecdh->deriveKey(&sb, pubKeyb, privKeya));
CPPUNIT_ASSERT(sb->getKeyBits() == expected);
ecdh->recyclePublicKey(pubKeya);
ecdh->recyclePublicKey(pubKeyb);
ecdh->recyclePrivateKey(privKeya);
ecdh->recyclePrivateKey(privKeyb);
ecdh->recycleSymmetricKey(sa);
ecdh->recycleSymmetricKey(sb);
}
示例2: testDerivation
void DHTests::testDerivation()
{
AsymmetricKeyPair* kpa;
AsymmetricKeyPair* kpb;
// Key sizes to test
std::vector<size_t> keySizes;
#ifdef WITH_FIPS
keySizes.push_back(1024);
#else
keySizes.push_back(512);
//keySizes.push_back(768);
//keySizes.push_back(1024);
#endif
for (std::vector<size_t>::iterator k = keySizes.begin(); k != keySizes.end(); k++)
{
// Generate parameters
AsymmetricParameters* p;
CPPUNIT_ASSERT(dh->generateParameters(&p, (void*) *k));
// Generate key-pairs
CPPUNIT_ASSERT(dh->generateKeyPair(&kpa, p));
CPPUNIT_ASSERT(dh->generateKeyPair(&kpb, p));
// Derive secrets
SymmetricKey* sa;
CPPUNIT_ASSERT(dh->deriveKey(&sa, kpb->getPublicKey(), kpa->getPrivateKey()));
SymmetricKey* sb;
CPPUNIT_ASSERT(dh->deriveKey(&sb, kpa->getPublicKey(), kpb->getPrivateKey()));
// Must be the same
CPPUNIT_ASSERT(sa->getKeyBits() == sb->getKeyBits());
// Clean up
dh->recycleSymmetricKey(sa);
dh->recycleSymmetricKey(sb);
dh->recycleKeyPair(kpa);
dh->recycleKeyPair(kpb);
dh->recycleParameters(p);
}
}
示例3: testDeriveKnownVector
void EDDSATests::testDeriveKnownVector()
{
EDPublicKey* pubKeya = (EDPublicKey*) eddsa->newPublicKey();
EDPublicKey* pubKeyb = (EDPublicKey*) eddsa->newPublicKey();
EDPrivateKey* privKeya = (EDPrivateKey*) eddsa->newPrivateKey();
EDPrivateKey* privKeyb = (EDPrivateKey*) eddsa->newPrivateKey();
// Reconstruct public and private key for Alice
ByteString ec = "06032b656e"; // x25519
ByteString ka = "77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a";
ByteString aa = "04208520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a";
pubKeya->setEC(ec);
pubKeya->setA(aa);
privKeya->setEC(ec);
privKeya->setK(ka);
// Reconstruct public and private key for Bob
ByteString kb = "5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb";
ByteString ab = "0420de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f";
pubKeyb->setEC(ec);
pubKeyb->setA(ab);
privKeyb->setEC(ec);
privKeyb->setK(kb);
// Test
ByteString expected = "4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742";
SymmetricKey* sa;
CPPUNIT_ASSERT(eddsa->deriveKey(&sa, pubKeya, privKeyb));
CPPUNIT_ASSERT(sa->getKeyBits() == expected);
SymmetricKey* sb;
CPPUNIT_ASSERT(eddsa->deriveKey(&sb, pubKeyb, privKeya));
CPPUNIT_ASSERT(sb->getKeyBits() == expected);
eddsa->recyclePublicKey(pubKeya);
eddsa->recyclePublicKey(pubKeyb);
eddsa->recyclePrivateKey(privKeya);
eddsa->recyclePrivateKey(privKeyb);
eddsa->recycleSymmetricKey(sa);
eddsa->recycleSymmetricKey(sb);
}
示例4: testDerivation
void ECDHTests::testDerivation()
{
AsymmetricKeyPair* kpa;
AsymmetricKeyPair* kpb;
ECParameters* p;
// Curves to test
std::vector<ByteString> curves;
// Add X9.62 prime256v1
curves.push_back(ByteString("06082a8648ce3d030107"));
// Add secp384r1
curves.push_back(ByteString("06052b81040022"));
for (std::vector<ByteString>::iterator c = curves.begin(); c != curves.end(); c++)
{
// Get parameters
p = new ECParameters;
CPPUNIT_ASSERT(p != NULL);
p->setEC(*c);
// Generate key-pairs
CPPUNIT_ASSERT(ecdh->generateKeyPair(&kpa, p));
CPPUNIT_ASSERT(ecdh->generateKeyPair(&kpb, p));
// Derive secrets
SymmetricKey* sa;
CPPUNIT_ASSERT(ecdh->deriveKey(&sa, kpb->getPublicKey(), kpa->getPrivateKey()));
SymmetricKey* sb;
CPPUNIT_ASSERT(ecdh->deriveKey(&sb, kpa->getPublicKey(), kpb->getPrivateKey()));
// Must be the same
CPPUNIT_ASSERT(sa->getKeyBits() == sb->getKeyBits());
// Clean up
ecdh->recycleSymmetricKey(sa);
ecdh->recycleSymmetricKey(sb);
ecdh->recycleKeyPair(kpa);
ecdh->recycleKeyPair(kpb);
ecdh->recycleParameters(p);
}
}
示例5: testDerivation
void EDDSATests::testDerivation()
{
AsymmetricKeyPair* kpa;
AsymmetricKeyPair* kpb;
ECParameters* p;
// Curves to test
std::vector<ByteString> curves;
// Add x25519
curves.push_back(ByteString("06032b656e"));
for (std::vector<ByteString>::iterator c = curves.begin(); c != curves.end(); c++)
{
// Get parameters
p = new ECParameters;
CPPUNIT_ASSERT(p != NULL);
p->setEC(*c);
// Generate key-pairs
CPPUNIT_ASSERT(eddsa->generateKeyPair(&kpa, p));
CPPUNIT_ASSERT(eddsa->generateKeyPair(&kpb, p));
// Derive secrets
SymmetricKey* sa;
CPPUNIT_ASSERT(eddsa->deriveKey(&sa, kpb->getPublicKey(), kpa->getPrivateKey()));
SymmetricKey* sb;
CPPUNIT_ASSERT(eddsa->deriveKey(&sb, kpa->getPublicKey(), kpb->getPrivateKey()));
// Must be the same
CPPUNIT_ASSERT(sa->getKeyBits() == sb->getKeyBits());
// Clean up
eddsa->recycleSymmetricKey(sa);
eddsa->recycleSymmetricKey(sb);
eddsa->recycleKeyPair(kpa);
eddsa->recycleKeyPair(kpb);
eddsa->recycleParameters(p);
}
}