Bouncy Castle: Add support for PBES2 encrypted KeyStores.

Cherry-pick notes: Will also be cherry-picking https://android-review.git.corp.google.com/q/topic:%22bcprivate_exceptions%22 which hides exceptions from the private provider better.  Aim is to get both topics into the April mainline train.

Adds a private sub-Provider to BouncyCastleProvider which allows BC's
PKCS12 implementation to continue using its own implementations of some Macs and Ciphers which support PBES2.

These implementions are not exposed to apps and are only used
from BC internals.

Bug: 230750823
Test: atest
CtsLibcoreTestCases:tests.targets.security.KeyStorePkcs7FormatTest
Change-Id: Ic505d0259d16cdc66f9776e818efa20ed97aa32b
Merged-In: Ic505d0259d16cdc66f9776e818efa20ed97aa32b
(cherry picked from commit 4fae1c6cb82e4b3e7d51e38ce0e3d7a4f22a0939)
30 files changed