Introduce GenericJcaMessageAgreementContext and KeyPairKey to support
message-based key agreement without breaking existing AgreementContext
capabilities.
Key changes:
- Add KeyPairKey wrapper to carry KeyPair through capability dispatch.
- Introduce GenericJcaMessageAgreementContext implementing
MessageAgreementContext, mapping the protocol message to an
SPKI-encoded public key.
- Extend DH, ECDH and XDH algorithms with an additional
MessageAgreementContext capability while preserving existing
PrivateKey-based agreement usage.
- Improve core agreement tests to cover CLASSIC_AGREEMENT, PAIR_MESSAGE
and KEM_ADAPTER variants with explicit branch identification.
- Add demo samples illustrating practical usage patterns for ML-KEM and
XDH agreement variants, including lifecycle and resource management
guidance.
This change adds capabilities by extension rather than replacement and
keeps existing APIs and behaviors fully backward compatible.
Signed-off-by: Leo Galambos <lg@hq.egothor.org>