return 0;
}
e->funct_ref++;
- ENGINE_REF_PRINT(e, 0, 1);
- ENGINE_REF_PRINT(e, 1, 1);
}
return to_return;
}
* to 0 without either calling finish().
*/
e->funct_ref--;
- ENGINE_REF_PRINT(e, 1, -1);
if ((e->funct_ref == 0) && e->finish) {
if (unlock_for_handlers)
CRYPTO_THREAD_unlock(global_engine_lock);
OPENSSL_free(ret);
return NULL;
}
- ENGINE_REF_PRINT(ret, 0, 1);
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_ENGINE, ret, &ret->ex_data)) {
CRYPTO_FREE_REF(&ret->struct_ref);
OPENSSL_free(ret);
if (e == NULL)
return 1;
CRYPTO_DOWN_REF(&e->struct_ref, &i);
- ENGINE_REF_PRINT(e, 0, -1);
if (i > 0)
return 1;
REF_ASSERT_ISNT(i < 0);
ERR_raise(ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR);
return 0;
}
- ENGINE_REF_PRINT(e, 0, 1);
if (engine_list_head == NULL) {
/* We are adding to an empty list. */
if (engine_list_tail != NULL) {
ERR_raise(ERR_LIB_ENGINE, ERR_R_CRYPTO_LIB);
return NULL;
}
- ENGINE_REF_PRINT(ret, 0, 1);
}
CRYPTO_THREAD_unlock(global_engine_lock);
return ret;
ERR_raise(ERR_LIB_ENGINE, ERR_R_CRYPTO_LIB);
return NULL;
}
- ENGINE_REF_PRINT(ret, 0, 1);
}
CRYPTO_THREAD_unlock(global_engine_lock);
return ret;
ERR_raise(ERR_LIB_ENGINE, ERR_R_CRYPTO_LIB);
return NULL;
}
- ENGINE_REF_PRINT(ret, 0, 1);
}
CRYPTO_THREAD_unlock(global_engine_lock);
/* Release the structural reference to the previous ENGINE */
ERR_raise(ERR_LIB_ENGINE, ERR_R_CRYPTO_LIB);
return NULL;
}
- ENGINE_REF_PRINT(ret, 0, 1);
}
CRYPTO_THREAD_unlock(global_engine_lock);
/* Release the structural reference to the previous ENGINE */
ERR_raise(ERR_LIB_ENGINE, ERR_R_CRYPTO_LIB);
return NULL;
}
- ENGINE_REF_PRINT(iterator, 0, 1);
}
}
CRYPTO_THREAD_unlock(global_engine_lock);
extern CRYPTO_RWLOCK *global_engine_lock;
-/*
- * This prints the engine's pointer address, "struct" or "funct" to
- * indicate the reference type, the before and after reference count, and
- * the file:line-number pair. The "ENGINE_REF_PRINT" statements must come
- * *after* the change.
- */
-# define ENGINE_REF_PRINT(e, isfunct, diff) \
- OSSL_TRACE6(ENGINE_REF_COUNT, \
- "engine: %p %s from %d to %d (%s:%d)\n", \
- (void *)(e), (isfunct ? "funct" : "struct"), \
- ((isfunct) \
- ? ((e)->funct_ref - (diff)) \
- : (eng_struct_ref(e) - (diff))), \
- ((isfunct) ? (e)->funct_ref : eng_struct_ref(e)), \
- (OPENSSL_FILE), (OPENSSL_LINE))
-
/*
* Any code that will need cleanup operations should use these functions to
* register callbacks. engine_cleanup_int() will call all registered
OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
#endif
- if (!(*table)) {
- OSSL_TRACE3(ENGINE_TABLE,
- "%s:%d, nid=%d, nothing registered!\n",
- f, l, nid);
+ if (!(*table))
return NULL;
- }
if (!CRYPTO_THREAD_write_lock(global_engine_lock))
return NULL;
if (!fnd)
goto end;
if (fnd->funct && engine_unlocked_init(fnd->funct)) {
- OSSL_TRACE4(ENGINE_TABLE,
- "%s:%d, nid=%d, using ENGINE '%s' cached\n",
- f, l, nid, fnd->funct->id);
ret = fnd->funct;
goto end;
}
}
trynext:
ret = sk_ENGINE_value(fnd->sk, loop++);
- if (!ret) {
- OSSL_TRACE3(ENGINE_TABLE,
- "%s:%d, nid=%d, "
- "no registered implementations would initialise\n",
- f, l, nid);
+ if (!ret)
goto end;
- }
/* Try to initialise the ENGINE? */
if ((ret->funct_ref > 0) || !(table_flags & ENGINE_TABLE_FLAG_NOINIT))
initres = engine_unlocked_init(ret);
if (fnd->funct)
engine_unlocked_finish(fnd->funct, 0);
fnd->funct = ret;
- OSSL_TRACE4(ENGINE_TABLE,
- "%s:%d, nid=%d, setting default to '%s'\n",
- f, l, nid, ret->id);
}
- OSSL_TRACE4(ENGINE_TABLE,
- "%s:%d, nid=%d, using newly initialised '%s'\n",
- f, l, nid, ret->id);
goto end;
}
goto trynext;
*/
if (fnd)
fnd->uptodate = 1;
- if (ret)
- OSSL_TRACE4(ENGINE_TABLE,
- "%s:%d, nid=%d, caching ENGINE '%s'\n",
- f, l, nid, ret->id);
- else
- OSSL_TRACE3(ENGINE_TABLE,
- "%s:%d, nid=%d, caching 'no matching ENGINE'\n",
- f, l, nid);
CRYPTO_THREAD_unlock(global_engine_lock);
/*
* Whatever happened, any failed init()s are not failures in this
ERR_raise(ERR_LIB_ENGINE, ERR_R_CRYPTO_LIB);
return NULL;
}
- ENGINE_REF_PRINT(fstr.e, 0, 1);
}
*pe = fstr.e;
CRYPTO_THREAD_unlock(global_engine_lock);
TRACE_CATEGORY_(TLS),
TRACE_CATEGORY_(TLS_CIPHER),
TRACE_CATEGORY_(CONF),
- TRACE_CATEGORY_(ENGINE_TABLE),
- TRACE_CATEGORY_(ENGINE_REF_COUNT),
TRACE_CATEGORY_(PKCS5V2),
TRACE_CATEGORY_(PKCS12_KEYGEN),
TRACE_CATEGORY_(PKCS12_DECRYPT),
# define OSSL_TRACE_CATEGORY_TLS 3
# define OSSL_TRACE_CATEGORY_TLS_CIPHER 4
# define OSSL_TRACE_CATEGORY_CONF 5
-# define OSSL_TRACE_CATEGORY_ENGINE_TABLE 6
-# define OSSL_TRACE_CATEGORY_ENGINE_REF_COUNT 7
-# define OSSL_TRACE_CATEGORY_PKCS5V2 8
-# define OSSL_TRACE_CATEGORY_PKCS12_KEYGEN 9
-# define OSSL_TRACE_CATEGORY_PKCS12_DECRYPT 10
-# define OSSL_TRACE_CATEGORY_X509V3_POLICY 11
-# define OSSL_TRACE_CATEGORY_BN_CTX 12
-# define OSSL_TRACE_CATEGORY_CMP 13
-# define OSSL_TRACE_CATEGORY_STORE 14
-# define OSSL_TRACE_CATEGORY_DECODER 15
-# define OSSL_TRACE_CATEGORY_ENCODER 16
-# define OSSL_TRACE_CATEGORY_REF_COUNT 17
-# define OSSL_TRACE_CATEGORY_HTTP 18
-# define OSSL_TRACE_CATEGORY_PROVIDER 19
-# define OSSL_TRACE_CATEGORY_QUERY 20
-# define OSSL_TRACE_CATEGORY_NUM 21
+# define OSSL_TRACE_CATEGORY_PKCS5V2 6
+# define OSSL_TRACE_CATEGORY_PKCS12_KEYGEN 7
+# define OSSL_TRACE_CATEGORY_PKCS12_DECRYPT 8
+# define OSSL_TRACE_CATEGORY_X509V3_POLICY 9
+# define OSSL_TRACE_CATEGORY_BN_CTX 10
+# define OSSL_TRACE_CATEGORY_CMP 11
+# define OSSL_TRACE_CATEGORY_STORE 12
+# define OSSL_TRACE_CATEGORY_DECODER 13
+# define OSSL_TRACE_CATEGORY_ENCODER 14
+# define OSSL_TRACE_CATEGORY_REF_COUNT 15
+# define OSSL_TRACE_CATEGORY_HTTP 16
+# define OSSL_TRACE_CATEGORY_PROVIDER 17
+# define OSSL_TRACE_CATEGORY_QUERY 18
+# define OSSL_TRACE_CATEGORY_NUM 19
/* KEEP THIS LIST IN SYNC with trace_categories[] in crypto/trace.c */
/* Returns the trace category number for the given |name| */
SET_EXPECTED_CAT_NAME(TLS_CIPHER);
case OSSL_TRACE_CATEGORY_CONF:
SET_EXPECTED_CAT_NAME(CONF);
- case OSSL_TRACE_CATEGORY_ENGINE_TABLE:
- SET_EXPECTED_CAT_NAME(ENGINE_TABLE);
- case OSSL_TRACE_CATEGORY_ENGINE_REF_COUNT:
- SET_EXPECTED_CAT_NAME(ENGINE_REF_COUNT);
case OSSL_TRACE_CATEGORY_PKCS5V2:
SET_EXPECTED_CAT_NAME(PKCS5V2);
case OSSL_TRACE_CATEGORY_PKCS12_KEYGEN: