components/openssl/openssl-1.0.0/engines/t4/eng_t4.c
changeset 580 abb7ba207fc9
parent 537 10bd3a98a582
child 603 1b966e9a6b03
--- a/components/openssl/openssl-1.0.0/engines/t4/eng_t4.c	Fri Nov 11 05:39:11 2011 -0800
+++ b/components/openssl/openssl-1.0.0/engines/t4/eng_t4.c	Mon Nov 14 08:53:46 2011 -0800
@@ -909,15 +909,18 @@
 static int
 t4_bind(ENGINE *e)
 {
-	static int aes_engage = -1;
+	static int aes_engage = -1, digest_engage = -1;
 
 	if (aes_engage == -1) {
 		aes_engage = (t4_aes_instructions_present() != 0);
 	}
+	if (digest_engage == -1) {
+		digest_engage = (t4_digest_instructions_present() != 0);
+	}
 
 #ifdef DEBUG_T4
 	(void) fprintf(stderr,
-	    "t4_bind: engage aes=%d\n", aes_engage);
+	    "t4_bind: engage aes=%d, digest=%d\n", aes_engage, digest_engage);
 #endif
 
 #ifndef  SOLARIS_NO_AES_CTR
@@ -948,6 +951,7 @@
 	    aes_engage ? ENGINE_T4_NAME: ENGINE_NO_T4_NAME) ||
 	    !ENGINE_set_init_function(e, t4_init) ||
 	    (aes_engage && !ENGINE_set_ciphers(e, t4_get_all_ciphers)) ||
+	    (digest_engage && !ENGINE_set_digests(e, t4_get_all_digests)) ||
 	    !ENGINE_set_destroy_function(e, t4_destroy)) {
 		T4_FREE_AES_CTR_NIDS;
 		return (0);