MAKE_DECODER
MAKE_DECODER(decode_krb5_authenticator, authenticator);
MAKE_DECODER(decode_krb5_ticket, ticket);
MAKE_DECODER(decode_krb5_encryption_key, encryption_key);
MAKE_DECODER(decode_krb5_enc_tkt_part, enc_tkt_part);
MAKE_DECODER(decode_krb5_as_rep, as_rep);
MAKE_DECODER(decode_krb5_tgs_rep, tgs_rep);
MAKE_DECODER(decode_krb5_ap_req, ap_req);
MAKE_DECODER(decode_krb5_ap_rep, ap_rep);
MAKE_DECODER(decode_krb5_ap_rep_enc_part, ap_rep_enc_part);
MAKE_DECODER(decode_krb5_as_req, as_req);
MAKE_DECODER(decode_krb5_tgs_req, tgs_req);
MAKE_DECODER(decode_krb5_kdc_req_body, kdc_req_body);
MAKE_DECODER(decode_krb5_safe, safe);
MAKE_DECODER(decode_krb5_priv, priv);
MAKE_DECODER(decode_krb5_enc_priv_part, priv_enc_part);
MAKE_DECODER(decode_krb5_checksum, checksum);
MAKE_DECODER(decode_krb5_cred, krb5_cred);
MAKE_DECODER(decode_krb5_enc_cred_part, enc_cred_part);
MAKE_DECODER(decode_krb5_error, krb5_error);
MAKE_DECODER(decode_krb5_authdata, auth_data);
MAKE_DECODER(decode_krb5_etype_info, etype_info);
MAKE_DECODER(decode_krb5_etype_info2, etype_info2);
MAKE_DECODER(decode_krb5_enc_data, encrypted_data);
MAKE_DECODER(decode_krb5_pa_enc_ts, pa_enc_ts);
MAKE_DECODER(decode_krb5_padata_sequence, seqof_pa_data);
MAKE_DECODER(decode_krb5_sam_challenge_2, sam_challenge_2);
MAKE_DECODER(decode_krb5_sam_challenge_2_body, sam_challenge_2_body);
MAKE_DECODER(decode_krb5_enc_sam_response_enc_2, enc_sam_response_enc_2);
MAKE_DECODER(decode_krb5_sam_response_2, sam_response_2);
MAKE_DECODER(decode_krb5_pa_for_user, pa_for_user);
MAKE_DECODER(decode_krb5_pa_s4u_x509_user, pa_s4u_x509_user);
MAKE_DECODER(decode_krb5_pa_pac_req, pa_pac_req);
MAKE_DECODER(decode_krb5_etype_list, etype_list);
MAKE_DECODER(decode_krb5_pa_fx_fast_request, pa_fx_fast_request);
MAKE_DECODER(decode_krb5_fast_req, fast_req);
MAKE_DECODER(decode_krb5_pa_fx_fast_reply, pa_fx_fast_reply);
MAKE_DECODER(decode_krb5_fast_response, fast_response);
MAKE_DECODER(decode_krb5_ad_kdcissued, ad_kdc_issued);
MAKE_DECODER(decode_krb5_iakerb_header, iakerb_header);
MAKE_DECODER(decode_krb5_iakerb_finished, iakerb_finished);
MAKE_DECODER(decode_krb5_pa_pk_as_req, pa_pk_as_req);
MAKE_DECODER(decode_krb5_pa_pk_as_rep, pa_pk_as_rep);
MAKE_DECODER(decode_krb5_auth_pack, auth_pack);
MAKE_DECODER(decode_krb5_kdc_dh_key_info, kdc_dh_key_info);
MAKE_DECODER(decode_krb5_reply_key_pack, reply_key_pack);
MAKE_DECODER(decode_krb5_td_trusted_certifiers,
MAKE_DECODER(decode_krb5_td_dh_parameters, seqof_algorithm_identifier);
MAKE_DECODER(decode_krb5_principal_name, pkinit_krb5_principal_name_data);
MAKE_DECODER(decode_krb5_typed_data, seqof_typed_data);
MAKE_DECODER(decode_krb5_otp_tokeninfo, otp_tokeninfo);
MAKE_DECODER(decode_krb5_pa_otp_challenge, pa_otp_challenge);
MAKE_DECODER(decode_krb5_pa_otp_req, pa_otp_req);
MAKE_DECODER(decode_krb5_pa_otp_enc_req, pa_otp_enc_req);
MAKE_DECODER(decode_krb5_kkdcp_message, kkdcp_message);
MAKE_DECODER(decode_krb5_cammac, cammac);
MAKE_DECODER(decode_utf8_strings, seqof_utf8_data);
MAKE_DECODER(decode_krb5_secure_cookie, secure_cookie);
MAKE_DECODER(decode_krb5_pa_pac_options, pa_pac_options);
MAKE_DECODER(decode_krb5_spake_factor, spake_factor);
MAKE_DECODER(decode_krb5_pa_spake, pa_spake);
MAKE_DECODER(krb5int_ldap_decode_sequence_of_keys, ldap_key_seq);
MAKE_DECODER("DH", dh, dh, PrivateKeyInfo);
MAKE_DECODER("DH", dh, dh, SubjectPublicKeyInfo);
MAKE_DECODER("DH", dh, dh, type_specific_params);
MAKE_DECODER("DH", dh, dh, DH);
MAKE_DECODER("DHX", dhx, dhx, PrivateKeyInfo);
MAKE_DECODER("DHX", dhx, dhx, SubjectPublicKeyInfo);
MAKE_DECODER("DHX", dhx, dhx, type_specific_params);
MAKE_DECODER("DHX", dhx, dhx, DHX);
MAKE_DECODER("DSA", dsa, dsa, PrivateKeyInfo);
MAKE_DECODER("DSA", dsa, dsa, SubjectPublicKeyInfo);
MAKE_DECODER("DSA", dsa, dsa, type_specific);
MAKE_DECODER("DSA", dsa, dsa, DSA);
MAKE_DECODER("EC", ec, ec, PrivateKeyInfo);
MAKE_DECODER("EC", ec, ec, SubjectPublicKeyInfo);
MAKE_DECODER("EC", ec, ec, type_specific_no_pub);
MAKE_DECODER("EC", ec, ec, EC);
MAKE_DECODER("X25519", x25519, ecx, PrivateKeyInfo);
MAKE_DECODER("X25519", x25519, ecx, SubjectPublicKeyInfo);
MAKE_DECODER("X448", x448, ecx, PrivateKeyInfo);
MAKE_DECODER("X448", x448, ecx, SubjectPublicKeyInfo);
MAKE_DECODER("ED25519", ed25519, ecx, PrivateKeyInfo);
MAKE_DECODER("ED25519", ed25519, ecx, SubjectPublicKeyInfo);
MAKE_DECODER("ED448", ed448, ecx, PrivateKeyInfo);
MAKE_DECODER("ED448", ed448, ecx, SubjectPublicKeyInfo);
MAKE_DECODER("SM2", sm2, ec, PrivateKeyInfo);
MAKE_DECODER("SM2", sm2, ec, SubjectPublicKeyInfo);
MAKE_DECODER("SM2", sm2, sm2, type_specific_no_pub);
MAKE_DECODER("ML-KEM-512", ml_kem_512, ml_kem_512, PrivateKeyInfo);
MAKE_DECODER("ML-KEM-512", ml_kem_512, ml_kem_512, SubjectPublicKeyInfo);
MAKE_DECODER("ML-KEM-768", ml_kem_768, ml_kem_768, PrivateKeyInfo);
MAKE_DECODER("ML-KEM-768", ml_kem_768, ml_kem_768, SubjectPublicKeyInfo);
MAKE_DECODER("ML-KEM-1024", ml_kem_1024, ml_kem_1024, PrivateKeyInfo);
MAKE_DECODER("ML-KEM-1024", ml_kem_1024, ml_kem_1024, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-128s", slh_dsa_sha2_128s, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-128f", slh_dsa_sha2_128f, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-192s", slh_dsa_sha2_192s, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-192f", slh_dsa_sha2_192f, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-256s", slh_dsa_sha2_256s, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-256f", slh_dsa_sha2_256f, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-128s", slh_dsa_shake_128s, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-128f", slh_dsa_shake_128f, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-192s", slh_dsa_shake_192s, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-192f", slh_dsa_shake_192f, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-256s", slh_dsa_shake_256s, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-256f", slh_dsa_shake_256f, slh_dsa, PrivateKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-128s", slh_dsa_sha2_128s, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-128f", slh_dsa_sha2_128f, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-192s", slh_dsa_sha2_192s, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-192f", slh_dsa_sha2_192f, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-256s", slh_dsa_sha2_256s, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHA2-256f", slh_dsa_sha2_256f, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-128s", slh_dsa_shake_128s, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-128f", slh_dsa_shake_128f, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-192s", slh_dsa_shake_192s, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-192f", slh_dsa_shake_192f, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-256s", slh_dsa_shake_256s, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("SLH-DSA-SHAKE-256f", slh_dsa_shake_256f, slh_dsa, SubjectPublicKeyInfo);
MAKE_DECODER("RSA", rsa, rsa, PrivateKeyInfo);
MAKE_DECODER("RSA", rsa, rsa, SubjectPublicKeyInfo);
MAKE_DECODER("RSA", rsa, rsa, type_specific_keypair);
MAKE_DECODER("RSA", rsa, rsa, RSA);
MAKE_DECODER("RSA-PSS", rsapss, rsapss, PrivateKeyInfo);
MAKE_DECODER("RSA-PSS", rsapss, rsapss, SubjectPublicKeyInfo);
MAKE_DECODER("ML-DSA-44", ml_dsa_44, ml_dsa_44, PrivateKeyInfo);
MAKE_DECODER("ML-DSA-44", ml_dsa_44, ml_dsa_44, SubjectPublicKeyInfo);
MAKE_DECODER("ML-DSA-65", ml_dsa_65, ml_dsa_65, PrivateKeyInfo);
MAKE_DECODER("ML-DSA-65", ml_dsa_65, ml_dsa_65, SubjectPublicKeyInfo);
MAKE_DECODER("ML-DSA-87", ml_dsa_87, ml_dsa_87, PrivateKeyInfo);
MAKE_DECODER("ML-DSA-87", ml_dsa_87, ml_dsa_87, SubjectPublicKeyInfo);
MAKE_DECODER(der, OSSL_OBJECT_UNKNOWN);
MAKE_DECODER(msblob, OSSL_OBJECT_PKEY);
MAKE_DECODER(pvk, OSSL_OBJECT_PKEY);
MAKE_DECODER("RSA", rsa, rsa, PrivateKeyInfo);
MAKE_DECODER("RSA", rsa, rsa, SubjectPublicKeyInfo);
MAKE_DECODER(XORSIGALG_NAME, xorhmacsig, xor, PrivateKeyInfo);
MAKE_DECODER(XORSIGALG_NAME, xorhmacsig, xor, SubjectPublicKeyInfo);
MAKE_DECODER(XORSIGALG_HASH_NAME, xorhmacsha2sig, xor, PrivateKeyInfo);
MAKE_DECODER(XORSIGALG_HASH_NAME, xorhmacsha2sig, xor, SubjectPublicKeyInfo);