aboutsummaryrefslogtreecommitdiffstats
path: root/doc/examples/keywrap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/keywrap.cpp')
-rw-r--r--doc/examples/keywrap.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/examples/keywrap.cpp b/doc/examples/keywrap.cpp
new file mode 100644
index 000000000..730bcb6c9
--- /dev/null
+++ b/doc/examples/keywrap.cpp
@@ -0,0 +1,38 @@
+/*
+* NIST keywrap example
+* (C) 2011 Jack Lloyd
+*
+* Distributed under the terms of the Botan license
+*/
+
+#include <botan/botan.h>
+#include <botan/rfc3394.h>
+#include <botan/hex.h>
+#include <iostream>
+
+int main()
+ {
+ using namespace Botan;
+
+ LibraryInitializer init;
+
+ AutoSeeded_RNG rng;
+
+ // The key to encrypt
+ SymmetricKey key(rng, 24);
+
+ // The key encryption key
+ SymmetricKey kek(rng, 32);
+
+ std::cout << "Original: " << key.as_string() << "\n";
+
+ Algorithm_Factory& af = global_state().algorithm_factory();
+
+ SecureVector<byte> enc = rfc3394_keywrap(key.bits_of(), kek, af);
+
+ std::cout << "Encrypted: " << hex_encode(enc) << "\n";
+
+ SecureVector<byte> dec = rfc3394_keyunwrap(enc, kek, af);
+
+ std::cout << "Decrypted: " << hex_encode(dec) << "\n";
+ }