WebCrypto: validate JWK key type against algorithm in importKey().
Previously, importKey() did not verify that the JWK "kty" field
matched the requested algorithm. For example, importing a JWK with
kty "oct" (symmetric) while specifying an asymmetric algorithm like
ECDH caused a SEGV in EVP_PKEY_free() during cleanup. This happened
because the symmetric key data written into the union's "raw" member
overlapped with the "pkey" pointer, corrupting it.
The fix validates kty before calling any JWK import function:
- "RSA" is only accepted for RSA-OAEP, RSA-PSS, RSASSA-PKCS1-v1_5
- "EC" is only accepted for ECDSA, ECDH
- "oct" is only accepted for HMAC, AES-GCM, AES-CTR, AES-CBC