Push padding and digest handling down to specific key types.

AsymmetricKey handled checking for digest and padding, but that doesn't
make sense because not all asymmetric key types need both.  This is in
preparation for adding asymmetric encryption/decryption support.

Change-Id: I7b9a4fc37b6d31ab25c56015c1df7d114affe882
11 files changed