Create a new branch (from trunk r22791) for work on encryption
performance, as described in:
http://k5wiki.kerberos.org/wiki/Projects/Encryption_Performance

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22792 dc483132-0cff-0310-8789-dd5450dbe970
Move the implementation of krb5_copy_keyblock[_contents] into crypto
 to allow internal use (similar to krb5_free_keyblock[_contents]).
Define krb5_key type and initial internal representation.
Define the constructor, destructor, and accessors.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22793 dc483132-0cff-0310-8789-dd5450dbe970
Merge trunk changes from r22791 to r22815 to enc-perf branch

bigredbutton: whitespace

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22816 dc483132-0cff-0310-8789-dd5450dbe970
Merge trunk changes from r22791 to r22833 to enc-perf branch

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22834 dc483132-0cff-0310-8789-dd5450dbe970
Define constructors, destructors, and accessors for krb5_key (file was
missing from r22793).  Const-poison signature of krb5_k_create_key.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22841 dc483132-0cff-0310-8789-dd5450dbe970
Merge trunk changes from r22833 to r22841 to enc-perf branch

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22842 dc483132-0cff-0310-8789-dd5450dbe970
Respecify most crypto internals in terms of krb5_key.
Implement krb5_k_encrypt/decrypt/etc. with krb5_c versions as wrapers.
OpenSSL back end not yet updated since it is undergoing work on trunk.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22845 dc483132-0cff-0310-8789-dd5450dbe970
Export krb5_k_encrypt/etc. from libk5crypto (change was missing
from r22845).

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22854 dc483132-0cff-0310-8789-dd5450dbe970
Extend t_encrypt to test krb5_k_encrypt and related functions as well
as the krb5_c variants.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22855 dc483132-0cff-0310-8789-dd5450dbe970
Adjust test programs to match new internal interfaces using krb5_key

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22858 dc483132-0cff-0310-8789-dd5450dbe970
Revert an unintended debugging change from r22845

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22869 dc483132-0cff-0310-8789-dd5450dbe970
Change the krb5_keyblocks in the libkrb5 auth context to krb5_keys,
and use krb5_k functions to encrypt and decrypt with them.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22870 dc483132-0cff-0310-8789-dd5450dbe970
Initialize the accessor with the keyblock version of krb5_hmac to
avoid changing its signature.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22899 dc483132-0cff-0310-8789-dd5450dbe970
Export krb5int_hmac_keyblock from libk5crypto so it can be referenced
by the accessor.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22901 dc483132-0cff-0310-8789-dd5450dbe970
Change the krb5_keyblocks in the gss-krb5 id-rec to krb5_keys, and use
krb5_k functions to encrypt and decrypt with them.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22903 dc483132-0cff-0310-8789-dd5450dbe970
Add reference counts to key identifiers, so that they can have multiple owners
without having to create multiple underlying PKCS#11 objects (or similar).

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22918 dc483132-0cff-0310-8789-dd5450dbe970
Implement derived key caching.  For now, omit the "nocache" flag, because it
would add code bulk without necessarily saving much work.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22919 dc483132-0cff-0310-8789-dd5450dbe970
Clarify that krb5_keys are logically immutable but may not be shared
between threads due to mutable internal state.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22929 dc483132-0cff-0310-8789-dd5450dbe970
Add a performance-testing harness for comparing krb5_k and krb5_c
variants of crypto functions.

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22930 dc483132-0cff-0310-8789-dd5450dbe970
Merge trunk changes from r22841 to r22912 to enc-perf branch

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/enc-perf@22931 dc483132-0cff-0310-8789-dd5450dbe970