1 /* 2 * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. 3 * Copyright Nokia 2007-2019 4 * Copyright Siemens AG 2015-2019 5 * 6 * Licensed under the Apache License 2.0 (the "License"). You may not use 7 * this file except in compliance with the License. You can obtain a copy 8 * in the file LICENSE in the source distribution or at 9 * https://www.openssl.org/source/license.html 10 */ 11 12 #ifndef OPENSSL_CMP_UTIL_H 13 # define OPENSSL_CMP_UTIL_H 14 # pragma once 15 16 # include <openssl/opensslconf.h> 17 # ifndef OPENSSL_NO_CMP 18 19 # include <openssl/macros.h> 20 # include <openssl/trace.h> 21 22 # ifdef __cplusplus 23 extern "C" { 24 # endif 25 26 int OSSL_CMP_log_open(void); 27 void OSSL_CMP_log_close(void); 28 # define OSSL_CMP_LOG_PREFIX "CMP " 29 30 /* 31 * generalized logging/error callback mirroring the severity levels of syslog.h 32 */ 33 typedef int OSSL_CMP_severity; 34 # define OSSL_CMP_LOG_EMERG 0 35 # define OSSL_CMP_LOG_ALERT 1 36 # define OSSL_CMP_LOG_CRIT 2 37 # define OSSL_CMP_LOG_ERR 3 38 # define OSSL_CMP_LOG_WARNING 4 39 # define OSSL_CMP_LOG_NOTICE 5 40 # define OSSL_CMP_LOG_INFO 6 41 # define OSSL_CMP_LOG_DEBUG 7 42 # define OSSL_CMP_LOG_TRACE 8 43 # define OSSL_CMP_LOG_MAX OSSL_CMP_LOG_TRACE 44 typedef int (*OSSL_CMP_log_cb_t)(const char *func, const char *file, int line, 45 OSSL_CMP_severity level, const char *msg); 46 47 int OSSL_CMP_print_to_bio(BIO *bio, const char *component, const char *file, 48 int line, OSSL_CMP_severity level, const char *msg); 49 /* use of the logging callback for outputting error queue */ 50 void OSSL_CMP_print_errors_cb(OSSL_CMP_log_cb_t log_fn); 51 52 # ifdef __cplusplus 53 } 54 # endif 55 # endif /* !defined(OPENSSL_NO_CMP) */ 56 #endif /* !defined(OPENSSL_CMP_UTIL_H) */ 57