Lines Matching defs:pd
106 * kcf_get_refcnt(pd) is the number of inflight requests to the
114 #define KCF_PROV_LOAD(pd) ((pd)->pd_state != KCF_PROV_BUSY ? \
115 kcf_get_refcnt(pd, B_FALSE) : (pd)->pd_taskq->tq_nalloc)
163 #define KCF_IS_PROV_UNVERIFIED(pd) ((pd)->pd_state == KCF_PROV_UNVERIFIED)
164 #define KCF_IS_PROV_USABLE(pd) ((pd)->pd_state == KCF_PROV_READY || \
165 (pd)->pd_state == KCF_PROV_BUSY)
166 #define KCF_IS_PROV_REMOVED(pd) ((pd)->pd_state >= KCF_PROV_UNREGISTERING)
299 #define KCF_PROV_INCRSTATS(pd, error) { \
302 mp = &((pd)->pd_percpu_bins[CPU_SEQID]); \
482 #define KCF_TO_PROV_MECH_INDX(pd, mech_type) \
483 ((pd)->pd_mech_indx[KCF_MECH2CLASS(mech_type)] \
486 #define KCF_TO_PROV_MECHINFO(pd, mech_type) \
487 ((pd)->pd_mechanisms[KCF_TO_PROV_MECH_INDX(pd, mech_type)])
489 #define KCF_TO_PROV_MECHNUM(pd, mech_type) \
490 (KCF_TO_PROV_MECHINFO(pd, mech_type).cm_mech_number)
492 #define KCF_CAN_SHARE_OPSTATE(pd, mech_type) \
493 ((KCF_TO_PROV_MECHINFO(pd, mech_type).cm_mech_flags) & \
563 * Wrappers for ops vectors. In the wrapper definitions below, the pd
568 #define KCF_PROV_CONTROL_OPS(pd) ((pd)->pd_ops_vector->co_control_ops)
569 #define KCF_PROV_CTX_OPS(pd) ((pd)->pd_ops_vector->co_ctx_ops)
570 #define KCF_PROV_DIGEST_OPS(pd) ((pd)->pd_ops_vector->co_digest_ops)
571 #define KCF_PROV_CIPHER_OPS(pd) ((pd)->pd_ops_vector->co_cipher_ops)
572 #define KCF_PROV_MAC_OPS(pd) ((pd)->pd_ops_vector->co_mac_ops)
573 #define KCF_PROV_SIGN_OPS(pd) ((pd)->pd_ops_vector->co_sign_ops)
574 #define KCF_PROV_VERIFY_OPS(pd) ((pd)->pd_ops_vector->co_verify_ops)
575 #define KCF_PROV_DUAL_OPS(pd) ((pd)->pd_ops_vector->co_dual_ops)
576 #define KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) \
577 ((pd)->pd_ops_vector->co_dual_cipher_mac_ops)
578 #define KCF_PROV_RANDOM_OPS(pd) ((pd)->pd_ops_vector->co_random_ops)
579 #define KCF_PROV_SESSION_OPS(pd) ((pd)->pd_ops_vector->co_session_ops)
580 #define KCF_PROV_OBJECT_OPS(pd) ((pd)->pd_ops_vector->co_object_ops)
581 #define KCF_PROV_KEY_OPS(pd) ((pd)->pd_ops_vector->co_key_ops)
582 #define KCF_PROV_PROVIDER_OPS(pd) ((pd)->pd_ops_vector->co_provider_ops)
583 #define KCF_PROV_MECH_OPS(pd) ((pd)->pd_ops_vector->co_mech_ops)
584 #define KCF_PROV_NOSTORE_KEY_OPS(pd) \
585 ((pd)->pd_ops_vector->co_nostore_key_ops)
586 #define KCF_PROV_FIPS140_OPS(pd) ((pd)->pd_ops_vector->co_fips140_ops)
587 #define KCF_PROV_PROVMGMT_OPS(pd) ((pd)->pd_ops_vector->co_provider_ops)
593 #define KCF_PROV_STATUS(pd, status) ( \
594 (KCF_PROV_CONTROL_OPS(pd) && \
595 KCF_PROV_CONTROL_OPS(pd)->provider_status) ? \
596 KCF_PROV_CONTROL_OPS(pd)->provider_status( \
597 (pd)->pd_prov_handle, status) : \
604 #define KCF_PROV_CREATE_CTX_TEMPLATE(pd, mech, key, template, size, req) ( \
605 (KCF_PROV_CTX_OPS(pd) && KCF_PROV_CTX_OPS(pd)->create_ctx_template) ? \
606 KCF_PROV_CTX_OPS(pd)->create_ctx_template( \
607 (pd)->pd_prov_handle, mech, key, template, size, req) : \
610 #define KCF_PROV_FREE_CONTEXT(pd, ctx) ( \
611 (KCF_PROV_CTX_OPS(pd) && KCF_PROV_CTX_OPS(pd)->free_context) ? \
612 KCF_PROV_CTX_OPS(pd)->free_context(ctx) : CRYPTO_NOT_SUPPORTED)
614 #define KCF_PROV_COPYIN_MECH(pd, umech, kmech, errorp, mode) ( \
615 (KCF_PROV_MECH_OPS(pd) && KCF_PROV_MECH_OPS(pd)->copyin_mechanism) ? \
616 KCF_PROV_MECH_OPS(pd)->copyin_mechanism( \
617 (pd)->pd_prov_handle, umech, kmech, errorp, mode) : \
620 #define KCF_PROV_COPYOUT_MECH(pd, kmech, umech, errorp, mode) ( \
621 (KCF_PROV_MECH_OPS(pd) && KCF_PROV_MECH_OPS(pd)->copyout_mechanism) ? \
622 KCF_PROV_MECH_OPS(pd)->copyout_mechanism( \
623 (pd)->pd_prov_handle, kmech, umech, errorp, mode) : \
626 #define KCF_PROV_FREE_MECH(pd, prov_mech) ( \
627 (KCF_PROV_MECH_OPS(pd) && KCF_PROV_MECH_OPS(pd)->free_mechanism) ? \
628 KCF_PROV_MECH_OPS(pd)->free_mechanism( \
629 (pd)->pd_prov_handle, prov_mech) : CRYPTO_NOT_SUPPORTED)
635 #define KCF_PROV_DIGEST_INIT(pd, ctx, mech, req) ( \
636 (KCF_PROV_DIGEST_OPS(pd) && KCF_PROV_DIGEST_OPS(pd)->digest_init) ? \
637 KCF_PROV_DIGEST_OPS(pd)->digest_init(ctx, mech, req) : \
644 #define KCF_PROV_DIGEST(pd, ctx, data, _digest, req) ( \
645 (KCF_PROV_DIGEST_OPS(pd) && KCF_PROV_DIGEST_OPS(pd)->digest) ? \
646 KCF_PROV_DIGEST_OPS(pd)->digest(ctx, data, _digest, req) : \
649 #define KCF_PROV_DIGEST_UPDATE(pd, ctx, data, req) ( \
650 (KCF_PROV_DIGEST_OPS(pd) && KCF_PROV_DIGEST_OPS(pd)->digest_update) ? \
651 KCF_PROV_DIGEST_OPS(pd)->digest_update(ctx, data, req) : \
654 #define KCF_PROV_DIGEST_KEY(pd, ctx, key, req) ( \
655 (KCF_PROV_DIGEST_OPS(pd) && KCF_PROV_DIGEST_OPS(pd)->digest_key) ? \
656 KCF_PROV_DIGEST_OPS(pd)->digest_key(ctx, key, req) : \
659 #define KCF_PROV_DIGEST_FINAL(pd, ctx, digest, req) ( \
660 (KCF_PROV_DIGEST_OPS(pd) && KCF_PROV_DIGEST_OPS(pd)->digest_final) ? \
661 KCF_PROV_DIGEST_OPS(pd)->digest_final(ctx, digest, req) : \
664 #define KCF_PROV_DIGEST_ATOMIC(pd, session, mech, data, digest, req) ( \
665 (KCF_PROV_DIGEST_OPS(pd) && KCF_PROV_DIGEST_OPS(pd)->digest_atomic) ? \
666 KCF_PROV_DIGEST_OPS(pd)->digest_atomic( \
667 (pd)->pd_prov_handle, session, mech, data, digest, req) : \
674 #define KCF_PROV_ENCRYPT_INIT(pd, ctx, mech, key, template, req) ( \
675 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->encrypt_init) ? \
676 KCF_PROV_CIPHER_OPS(pd)->encrypt_init(ctx, mech, key, template, \
680 #define KCF_PROV_ENCRYPT(pd, ctx, plaintext, ciphertext, req) ( \
681 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->encrypt) ? \
682 KCF_PROV_CIPHER_OPS(pd)->encrypt(ctx, plaintext, ciphertext, req) : \
685 #define KCF_PROV_ENCRYPT_UPDATE(pd, ctx, plaintext, ciphertext, req) ( \
686 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->encrypt_update) ? \
687 KCF_PROV_CIPHER_OPS(pd)->encrypt_update(ctx, plaintext, \
691 #define KCF_PROV_ENCRYPT_FINAL(pd, ctx, ciphertext, req) ( \
692 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->encrypt_final) ? \
693 KCF_PROV_CIPHER_OPS(pd)->encrypt_final(ctx, ciphertext, req) : \
696 #define KCF_PROV_ENCRYPT_ATOMIC(pd, session, mech, key, plaintext, ciphertext, \
698 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->encrypt_atomic) ? \
699 KCF_PROV_CIPHER_OPS(pd)->encrypt_atomic( \
700 (pd)->pd_prov_handle, session, mech, key, plaintext, ciphertext, \
704 #define KCF_PROV_DECRYPT_INIT(pd, ctx, mech, key, template, req) ( \
705 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->decrypt_init) ? \
706 KCF_PROV_CIPHER_OPS(pd)->decrypt_init(ctx, mech, key, template, \
710 #define KCF_PROV_DECRYPT(pd, ctx, ciphertext, plaintext, req) ( \
711 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->decrypt) ? \
712 KCF_PROV_CIPHER_OPS(pd)->decrypt(ctx, ciphertext, plaintext, req) : \
715 #define KCF_PROV_DECRYPT_UPDATE(pd, ctx, ciphertext, plaintext, req) ( \
716 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->decrypt_update) ? \
717 KCF_PROV_CIPHER_OPS(pd)->decrypt_update(ctx, ciphertext, \
721 #define KCF_PROV_DECRYPT_FINAL(pd, ctx, plaintext, req) ( \
722 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->decrypt_final) ? \
723 KCF_PROV_CIPHER_OPS(pd)->decrypt_final(ctx, plaintext, req) : \
726 #define KCF_PROV_DECRYPT_ATOMIC(pd, session, mech, key, ciphertext, plaintext, \
728 (KCF_PROV_CIPHER_OPS(pd) && KCF_PROV_CIPHER_OPS(pd)->decrypt_atomic) ? \
729 KCF_PROV_CIPHER_OPS(pd)->decrypt_atomic( \
730 (pd)->pd_prov_handle, session, mech, key, ciphertext, plaintext, \
738 #define KCF_PROV_MAC_INIT(pd, ctx, mech, key, template, req) ( \
739 (KCF_PROV_MAC_OPS(pd) && KCF_PROV_MAC_OPS(pd)->mac_init) ? \
740 KCF_PROV_MAC_OPS(pd)->mac_init(ctx, mech, key, template, req) \
747 #define KCF_PROV_MAC(pd, ctx, data, _mac, req) ( \
748 (KCF_PROV_MAC_OPS(pd) && KCF_PROV_MAC_OPS(pd)->mac) ? \
749 KCF_PROV_MAC_OPS(pd)->mac(ctx, data, _mac, req) : \
752 #define KCF_PROV_MAC_UPDATE(pd, ctx, data, req) ( \
753 (KCF_PROV_MAC_OPS(pd) && KCF_PROV_MAC_OPS(pd)->mac_update) ? \
754 KCF_PROV_MAC_OPS(pd)->mac_update(ctx, data, req) : \
757 #define KCF_PROV_MAC_FINAL(pd, ctx, mac, req) ( \
758 (KCF_PROV_MAC_OPS(pd) && KCF_PROV_MAC_OPS(pd)->mac_final) ? \
759 KCF_PROV_MAC_OPS(pd)->mac_final(ctx, mac, req) : \
762 #define KCF_PROV_MAC_ATOMIC(pd, session, mech, key, data, mac, template, \
764 (KCF_PROV_MAC_OPS(pd) && KCF_PROV_MAC_OPS(pd)->mac_atomic) ? \
765 KCF_PROV_MAC_OPS(pd)->mac_atomic( \
766 (pd)->pd_prov_handle, session, mech, key, data, mac, template, \
770 #define KCF_PROV_MAC_VERIFY_ATOMIC(pd, session, mech, key, data, mac, \
772 (KCF_PROV_MAC_OPS(pd) && KCF_PROV_MAC_OPS(pd)->mac_verify_atomic) ? \
773 KCF_PROV_MAC_OPS(pd)->mac_verify_atomic( \
774 (pd)->pd_prov_handle, session, mech, key, data, mac, template, \
782 #define KCF_PROV_SIGN_INIT(pd, ctx, mech, key, template, req) ( \
783 (KCF_PROV_SIGN_OPS(pd) && KCF_PROV_SIGN_OPS(pd)->sign_init) ? \
784 KCF_PROV_SIGN_OPS(pd)->sign_init( \
787 #define KCF_PROV_SIGN(pd, ctx, data, sig, req) ( \
788 (KCF_PROV_SIGN_OPS(pd) && KCF_PROV_SIGN_OPS(pd)->sign) ? \
789 KCF_PROV_SIGN_OPS(pd)->sign(ctx, data, sig, req) : \
792 #define KCF_PROV_SIGN_UPDATE(pd, ctx, data, req) ( \
793 (KCF_PROV_SIGN_OPS(pd) && KCF_PROV_SIGN_OPS(pd)->sign_update) ? \
794 KCF_PROV_SIGN_OPS(pd)->sign_update(ctx, data, req) : \
797 #define KCF_PROV_SIGN_FINAL(pd, ctx, sig, req) ( \
798 (KCF_PROV_SIGN_OPS(pd) && KCF_PROV_SIGN_OPS(pd)->sign_final) ? \
799 KCF_PROV_SIGN_OPS(pd)->sign_final(ctx, sig, req) : \
802 #define KCF_PROV_SIGN_ATOMIC(pd, session, mech, key, data, template, \
804 (KCF_PROV_SIGN_OPS(pd) && KCF_PROV_SIGN_OPS(pd)->sign_atomic) ? \
805 KCF_PROV_SIGN_OPS(pd)->sign_atomic( \
806 (pd)->pd_prov_handle, session, mech, key, data, sig, template, \
809 #define KCF_PROV_SIGN_RECOVER_INIT(pd, ctx, mech, key, template, \
811 (KCF_PROV_SIGN_OPS(pd) && KCF_PROV_SIGN_OPS(pd)->sign_recover_init) ? \
812 KCF_PROV_SIGN_OPS(pd)->sign_recover_init(ctx, mech, key, template, \
815 #define KCF_PROV_SIGN_RECOVER(pd, ctx, data, sig, req) ( \
816 (KCF_PROV_SIGN_OPS(pd) && KCF_PROV_SIGN_OPS(pd)->sign_recover) ? \
817 KCF_PROV_SIGN_OPS(pd)->sign_recover(ctx, data, sig, req) : \
820 #define KCF_PROV_SIGN_RECOVER_ATOMIC(pd, session, mech, key, data, template, \
822 (KCF_PROV_SIGN_OPS(pd) && \
823 KCF_PROV_SIGN_OPS(pd)->sign_recover_atomic) ? \
824 KCF_PROV_SIGN_OPS(pd)->sign_recover_atomic( \
825 (pd)->pd_prov_handle, session, mech, key, data, sig, template, \
832 #define KCF_PROV_VERIFY_INIT(pd, ctx, mech, key, template, req) ( \
833 (KCF_PROV_VERIFY_OPS(pd) && KCF_PROV_VERIFY_OPS(pd)->verify_init) ? \
834 KCF_PROV_VERIFY_OPS(pd)->verify_init(ctx, mech, key, template, \
837 #define KCF_PROV_VERIFY(pd, ctx, data, sig, req) ( \
838 (KCF_PROV_VERIFY_OPS(pd) && KCF_PROV_VERIFY_OPS(pd)->verify) ? \
839 KCF_PROV_VERIFY_OPS(pd)->verify(ctx, data, sig, req) : \
842 #define KCF_PROV_VERIFY_UPDATE(pd, ctx, data, req) ( \
843 (KCF_PROV_VERIFY_OPS(pd) && KCF_PROV_VERIFY_OPS(pd)->verify_update) ? \
844 KCF_PROV_VERIFY_OPS(pd)->verify_update(ctx, data, req) : \
847 #define KCF_PROV_VERIFY_FINAL(pd, ctx, sig, req) ( \
848 (KCF_PROV_VERIFY_OPS(pd) && KCF_PROV_VERIFY_OPS(pd)->verify_final) ? \
849 KCF_PROV_VERIFY_OPS(pd)->verify_final(ctx, sig, req) : \
852 #define KCF_PROV_VERIFY_ATOMIC(pd, session, mech, key, data, template, sig, \
854 (KCF_PROV_VERIFY_OPS(pd) && KCF_PROV_VERIFY_OPS(pd)->verify_atomic) ? \
855 KCF_PROV_VERIFY_OPS(pd)->verify_atomic( \
856 (pd)->pd_prov_handle, session, mech, key, data, sig, template, \
859 #define KCF_PROV_VERIFY_RECOVER_INIT(pd, ctx, mech, key, template, \
861 (KCF_PROV_VERIFY_OPS(pd) && \
862 KCF_PROV_VERIFY_OPS(pd)->verify_recover_init) ? \
863 KCF_PROV_VERIFY_OPS(pd)->verify_recover_init(ctx, mech, key, \
867 #define KCF_PROV_VERIFY_RECOVER(pd, ctx, sig, data, req) ( \
868 (KCF_PROV_VERIFY_OPS(pd) && KCF_PROV_VERIFY_OPS(pd)->verify_recover) ? \
869 KCF_PROV_VERIFY_OPS(pd)->verify_recover(ctx, sig, data, req) : \
876 #define KCF_PROV_VERIFY_RECOVER_ATOMIC(pd, session, mech, key, sig, \
878 (KCF_PROV_VERIFY_OPS(pd) && \
879 KCF_PROV_VERIFY_OPS(pd)->verify_recover_atomic) ? \
880 KCF_PROV_VERIFY_OPS(pd)->verify_recover_atomic( \
881 (pd)->pd_prov_handle, session, mech, key, sig, data, template, \
890 (KCF_PROV_DUAL_OPS(pd) && \
891 KCF_PROV_DUAL_OPS(pd)->digest_encrypt_update) ? \
892 KCF_PROV_DUAL_OPS(pd)->digest_encrypt_update( \
898 (KCF_PROV_DUAL_OPS(pd) && \
899 KCF_PROV_DUAL_OPS(pd)->decrypt_digest_update) ? \
900 KCF_PROV_DUAL_OPS(pd)->decrypt_digest_update( \
906 (KCF_PROV_DUAL_OPS(pd) && \
907 KCF_PROV_DUAL_OPS(pd)->sign_encrypt_update) ? \
908 KCF_PROV_DUAL_OPS(pd)->sign_encrypt_update( \
914 (KCF_PROV_DUAL_OPS(pd) && \
915 KCF_PROV_DUAL_OPS(pd)->decrypt_verify_update) ? \
916 KCF_PROV_DUAL_OPS(pd)->decrypt_verify_update( \
924 #define KCF_PROV_ENCRYPT_MAC_INIT(pd, ctx, encr_mech, encr_key, mac_mech, \
926 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
927 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac_init) ? \
928 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac_init( \
933 #define KCF_PROV_ENCRYPT_MAC(pd, ctx, plaintext, ciphertext, mac, req) ( \
934 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
935 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac) ? \
936 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac( \
940 #define KCF_PROV_ENCRYPT_MAC_UPDATE(pd, ctx, plaintext, ciphertext, req) ( \
941 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
942 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac_update) ? \
943 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac_update( \
947 #define KCF_PROV_ENCRYPT_MAC_FINAL(pd, ctx, ciphertext, mac, req) ( \
948 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
949 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac_final) ? \
950 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac_final( \
954 #define KCF_PROV_ENCRYPT_MAC_ATOMIC(pd, session, encr_mech, encr_key, \
957 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
958 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac_atomic) ? \
959 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->encrypt_mac_atomic( \
960 (pd)->pd_prov_handle, session, encr_mech, encr_key, \
965 #define KCF_PROV_MAC_DECRYPT_INIT(pd, ctx, mac_mech, mac_key, decr_mech, \
967 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
968 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt_init) ? \
969 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt_init( \
974 #define KCF_PROV_MAC_DECRYPT(pd, ctx, ciphertext, mac, plaintext, req) ( \
975 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
976 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt) ? \
977 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt( \
981 #define KCF_PROV_MAC_DECRYPT_UPDATE(pd, ctx, ciphertext, plaintext, req) ( \
982 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
983 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt_update) ? \
984 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt_update( \
988 #define KCF_PROV_MAC_DECRYPT_FINAL(pd, ctx, mac, plaintext, req) ( \
989 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
990 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt_final) ? \
991 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt_final( \
995 #define KCF_PROV_MAC_DECRYPT_ATOMIC(pd, session, mac_mech, mac_key, \
998 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
999 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt_atomic) ? \
1000 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_decrypt_atomic( \
1001 (pd)->pd_prov_handle, session, mac_mech, mac_key, \
1006 #define KCF_PROV_MAC_VERIFY_DECRYPT_ATOMIC(pd, session, mac_mech, mac_key, \
1009 (KCF_PROV_DUAL_CIPHER_MAC_OPS(pd) && \
1010 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_verify_decrypt_atomic \
1012 KCF_PROV_DUAL_CIPHER_MAC_OPS(pd)->mac_verify_decrypt_atomic( \
1013 (pd)->pd_prov_handle, session, mac_mech, mac_key, \
1022 #define KCF_PROV_SEED_RANDOM(pd, session, buf, len, est, flags, req) ( \
1023 (KCF_PROV_RANDOM_OPS(pd) && KCF_PROV_RANDOM_OPS(pd)->seed_random) ? \
1024 KCF_PROV_RANDOM_OPS(pd)->seed_random((pd)->pd_prov_handle, \
1027 #define KCF_PROV_GENERATE_RANDOM(pd, session, buf, len, req) ( \
1028 (KCF_PROV_RANDOM_OPS(pd) && \
1029 KCF_PROV_RANDOM_OPS(pd)->generate_random) ? \
1030 KCF_PROV_RANDOM_OPS(pd)->generate_random((pd)->pd_prov_handle, \
1037 * pd is the descriptor that supplies the provider handle.
1041 #define KCF_PROV_SESSION_OPEN(ops_pd, session, req, pd) ( \
1044 KCF_PROV_SESSION_OPS(ops_pd)->session_open((pd)->pd_prov_handle, \
1047 #define KCF_PROV_SESSION_CLOSE(ops_pd, session, req, pd) ( \
1050 KCF_PROV_SESSION_OPS(ops_pd)->session_close((pd)->pd_prov_handle, \
1053 #define KCF_PROV_SESSION_LOGIN(pd, session, user_type, pin, len, req) ( \
1054 (KCF_PROV_SESSION_OPS(pd) && \
1055 KCF_PROV_SESSION_OPS(pd)->session_login) ? \
1056 KCF_PROV_SESSION_OPS(pd)->session_login((pd)->pd_prov_handle, \
1059 #define KCF_PROV_SESSION_LOGOUT(pd, session, req) ( \
1060 (KCF_PROV_SESSION_OPS(pd) && \
1061 KCF_PROV_SESSION_OPS(pd)->session_logout) ? \
1062 KCF_PROV_SESSION_OPS(pd)->session_logout((pd)->pd_prov_handle, \
1069 #define KCF_PROV_OBJECT_CREATE(pd, session, template, count, object, req) ( \
1070 (KCF_PROV_OBJECT_OPS(pd) && KCF_PROV_OBJECT_OPS(pd)->object_create) ? \
1071 KCF_PROV_OBJECT_OPS(pd)->object_create((pd)->pd_prov_handle, \
1074 #define KCF_PROV_OBJECT_COPY(pd, session, object, template, count, \
1076 (KCF_PROV_OBJECT_OPS(pd) && KCF_PROV_OBJECT_OPS(pd)->object_copy) ? \
1077 KCF_PROV_OBJECT_OPS(pd)->object_copy((pd)->pd_prov_handle, \
1081 #define KCF_PROV_OBJECT_DESTROY(pd, session, object, req) ( \
1082 (KCF_PROV_OBJECT_OPS(pd) && KCF_PROV_OBJECT_OPS(pd)->object_destroy) ? \
1083 KCF_PROV_OBJECT_OPS(pd)->object_destroy((pd)->pd_prov_handle, \
1086 #define KCF_PROV_OBJECT_GET_SIZE(pd, session, object, size, req) ( \
1087 (KCF_PROV_OBJECT_OPS(pd) && \
1088 KCF_PROV_OBJECT_OPS(pd)->object_get_size) ? \
1089 KCF_PROV_OBJECT_OPS(pd)->object_get_size((pd)->pd_prov_handle, \
1092 #define KCF_PROV_OBJECT_GET_ATTRIBUTE_VALUE(pd, session, object, template, \
1094 (KCF_PROV_OBJECT_OPS(pd) && \
1095 KCF_PROV_OBJECT_OPS(pd)->object_get_attribute_value) ? \
1096 KCF_PROV_OBJECT_OPS(pd)->object_get_attribute_value( \
1097 (pd)->pd_prov_handle, session, object, template, count, req) : \
1100 #define KCF_PROV_OBJECT_SET_ATTRIBUTE_VALUE(pd, session, object, template, \
1102 (KCF_PROV_OBJECT_OPS(pd) && \
1103 KCF_PROV_OBJECT_OPS(pd)->object_set_attribute_value) ? \
1104 KCF_PROV_OBJECT_OPS(pd)->object_set_attribute_value( \
1105 (pd)->pd_prov_handle, session, object, template, count, req) : \
1108 #define KCF_PROV_OBJECT_FIND_INIT(pd, session, template, count, ppriv, \
1110 (KCF_PROV_OBJECT_OPS(pd) && \
1111 KCF_PROV_OBJECT_OPS(pd)->object_find_init) ? \
1112 KCF_PROV_OBJECT_OPS(pd)->object_find_init((pd)->pd_prov_handle, \
1115 #define KCF_PROV_OBJECT_FIND(pd, ppriv, objects, max_objects, object_count, \
1117 (KCF_PROV_OBJECT_OPS(pd) && KCF_PROV_OBJECT_OPS(pd)->object_find) ? \
1118 KCF_PROV_OBJECT_OPS(pd)->object_find( \
1119 (pd)->pd_prov_handle, ppriv, objects, max_objects, object_count, \
1122 #define KCF_PROV_OBJECT_FIND_FINAL(pd, ppriv, req) ( \
1123 (KCF_PROV_OBJECT_OPS(pd) && \
1124 KCF_PROV_OBJECT_OPS(pd)->object_find_final) ? \
1125 KCF_PROV_OBJECT_OPS(pd)->object_find_final( \
1126 (pd)->pd_prov_handle, ppriv, req) : CRYPTO_NOT_SUPPORTED)
1132 #define KCF_PROV_KEY_GENERATE(pd, session, mech, template, count, object, \
1134 (KCF_PROV_KEY_OPS(pd) && KCF_PROV_KEY_OPS(pd)->key_generate) ? \
1135 KCF_PROV_KEY_OPS(pd)->key_generate((pd)->pd_prov_handle, \
1139 #define KCF_PROV_KEY_GENERATE_PAIR(pd, session, mech, pub_template, \
1141 (KCF_PROV_KEY_OPS(pd) && KCF_PROV_KEY_OPS(pd)->key_generate_pair) ? \
1142 KCF_PROV_KEY_OPS(pd)->key_generate_pair((pd)->pd_prov_handle, \
1147 #define KCF_PROV_KEY_WRAP(pd, session, mech, wrapping_key, key, wrapped_key, \
1149 (KCF_PROV_KEY_OPS(pd) && KCF_PROV_KEY_OPS(pd)->key_wrap) ? \
1150 KCF_PROV_KEY_OPS(pd)->key_wrap((pd)->pd_prov_handle, \
1155 #define KCF_PROV_KEY_UNWRAP(pd, session, mech, unwrapping_key, wrapped_key, \
1157 (KCF_PROV_KEY_OPS(pd) && KCF_PROV_KEY_OPS(pd)->key_unwrap) ? \
1158 KCF_PROV_KEY_OPS(pd)->key_unwrap((pd)->pd_prov_handle, \
1163 #define KCF_PROV_KEY_DERIVE(pd, session, mech, base_key, template, count, \
1165 (KCF_PROV_KEY_OPS(pd) && KCF_PROV_KEY_OPS(pd)->key_derive) ? \
1166 KCF_PROV_KEY_OPS(pd)->key_derive((pd)->pd_prov_handle, \
1170 #define KCF_PROV_KEY_CHECK(pd, mech, key) ( \
1171 (KCF_PROV_KEY_OPS(pd) && KCF_PROV_KEY_OPS(pd)->key_check) ? \
1172 KCF_PROV_KEY_OPS(pd)->key_check((pd)->pd_prov_handle, mech, key) : \
1179 * pd is the descriptor that supplies the provider handle.
1183 #define KCF_PROV_EXT_INFO(ops_pd, provext_info, req, pd) ( \
1186 KCF_PROV_PROVIDER_OPS(ops_pd)->ext_info((pd)->pd_prov_handle, \
1189 #define KCF_PROV_INIT_TOKEN(pd, pin, pin_len, label, req) ( \
1190 (KCF_PROV_PROVIDER_OPS(pd) && KCF_PROV_PROVIDER_OPS(pd)->init_token) ? \
1191 KCF_PROV_PROVIDER_OPS(pd)->init_token((pd)->pd_prov_handle, \
1194 #define KCF_PROV_INIT_PIN(pd, session, pin, pin_len, req) ( \
1195 (KCF_PROV_PROVIDER_OPS(pd) && KCF_PROV_PROVIDER_OPS(pd)->init_pin) ? \
1196 KCF_PROV_PROVIDER_OPS(pd)->init_pin((pd)->pd_prov_handle, \
1199 #define KCF_PROV_SET_PIN(pd, session, old_pin, old_len, new_pin, new_len, \
1201 (KCF_PROV_PROVIDER_OPS(pd) && KCF_PROV_PROVIDER_OPS(pd)->set_pin) ? \
1202 KCF_PROV_PROVIDER_OPS(pd)->set_pin((pd)->pd_prov_handle, \
1210 #define KCF_PROV_NOSTORE_KEY_GENERATE(pd, session, mech, template, count, \
1212 (KCF_PROV_NOSTORE_KEY_OPS(pd) && \
1213 KCF_PROV_NOSTORE_KEY_OPS(pd)->nostore_key_generate) ? \
1214 KCF_PROV_NOSTORE_KEY_OPS(pd)->nostore_key_generate( \
1215 (pd)->pd_prov_handle, session, mech, template, count, \
1218 #define KCF_PROV_NOSTORE_KEY_GENERATE_PAIR(pd, session, mech, pub_template, \
1221 (KCF_PROV_NOSTORE_KEY_OPS(pd) && \
1222 KCF_PROV_NOSTORE_KEY_OPS(pd)->nostore_key_generate_pair) ? \
1223 KCF_PROV_NOSTORE_KEY_OPS(pd)->nostore_key_generate_pair( \
1224 (pd)->pd_prov_handle, session, mech, pub_template, pub_count, \
1228 #define KCF_PROV_NOSTORE_KEY_DERIVE(pd, session, mech, base_key, template, \
1230 (KCF_PROV_NOSTORE_KEY_OPS(pd) && \
1231 KCF_PROV_NOSTORE_KEY_OPS(pd)->nostore_key_derive) ? \
1232 KCF_PROV_NOSTORE_KEY_OPS(pd)->nostore_key_derive( \
1233 (pd)->pd_prov_handle, session, mech, base_key, template, count, \