Add some features

`$public_or_private_key` shouldn't be JWK Set, but JWK.
Not all JWx use-cases uses JWK Set.
(eg. OpenID Connect self-issued ID Token, OAuth Proof of Possession Token)