![]() |
The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
Check a certificate's serial number against a CRL. More...
#include <freeradius-devel/server/base.h>#include <freeradius-devel/server/module_rlm.h>#include <freeradius-devel/tls/strerror.h>#include <freeradius-devel/tls/utils.h>#include <openssl/x509v3.h>#include <openssl/pem.h>#include <openssl/asn1.h>#include <openssl/bn.h>
Include dependency graph for rlm_crl.c:Go to the source code of this file.
Data Structures | |
| struct | crl_entry_t |
| A single CRL in the global list of CRLs. More... | |
| struct | crl_pending_t |
| Structure to record a request which is waiting for CRL fetching to complete. More... | |
| struct | rlm_crl_env_t |
| struct | rlm_crl_mutable_t |
| Global tree of CRLs. More... | |
| struct | rlm_crl_rctx_t |
| struct | rlm_crl_t |
| struct | rlm_crl_thread_t |
| Thread specific structure to hold requests awaiting CRL fetching. More... | |
Enumerations | |
| enum | crl_check_status_t { CRL_CHECK_BASE = 0 , CRL_CHECK_FETCH_DELTA , CRL_CHECK_DELTA } |
| A status used to track which CRL is being checked. More... | |
| enum | crl_ret_t { CRL_ERROR = -1 , CRL_ENTRY_NOT_FOUND = 0 , CRL_ENTRY_FOUND = 1 , CRL_ENTRY_REMOVED = 2 , CRL_NOT_FOUND = 3 , CRL_MISSING_DELTA = 4 } |
Functions | |
| static int | mod_instantiate (module_inst_ctx_t const *mctx) |
| Instantiate the module. | |
Variables | |
| static fr_dict_attr_t const * | attr_crl_cdp_url |
| static fr_dict_attr_t const * | attr_crl_data |
| static fr_dict_t const * | dict_freeradius |
| static conf_parser_t | module_config [] |
| module_rlm_t | rlm_crl |
| fr_dict_autoload_t | rlm_crl_dict [] |
| fr_dict_attr_autoload_t | rlm_crl_dict_attr [] |
Check a certificate's serial number against a CRL.
Definition in file rlm_crl.c.
| struct crl_entry_t |
Collaboration diagram for crl_entry_t:| Data Fields | ||
|---|---|---|
| char const * | cdp_url | The URL of the CRL. |
| X509_CRL * | crl | The CRL. |
| ASN1_INTEGER * | crl_num | The CRL number. |
| fr_value_box_list_t | delta_urls | URLs from which a delta CRL can be retrieved. |
| fr_timer_t * | ev | When to expire the CRL. |
| rlm_crl_t const * | inst | The instance of the CRL module. |
| fr_rb_node_t | node | The node in the tree. |
| rlm_crl_thread_t * | thread | The thread which fetched this entry. |
| struct crl_pending_t |
Structure to record a request which is waiting for CRL fetching to complete.
Collaboration diagram for crl_pending_t:| Data Fields | ||
|---|---|---|
| fr_rb_node_t | node | |
| request_t * | request | |
| struct rlm_crl_env_t |
Collaboration diagram for rlm_crl_env_t:| Data Fields | ||
|---|---|---|
| fr_value_box_list_head_t * | cdp | The CRL distribution points. |
| tmpl_t * | ftp_exp | The xlat expansion used to retrieve the CRL via ftp://. |
| tmpl_t * | http_exp | The xlat expansion used to retrieve the CRL via http://. |
| tmpl_t * | ldap_exp | The xlat expansion used to retrieve the CRL via ldap://. |
| fr_value_box_t | serial | The serial to check. |
| struct rlm_crl_mutable_t |
Global tree of CRLs.
Separate from the instance data because that's protected.
Collaboration diagram for rlm_crl_mutable_t:| Data Fields | ||
|---|---|---|
| fr_rb_tree_t * | crls | A tree of CRLs organised by CDP URL. |
| rlm_crl_thread_t * | fetching | Pointer to thread instance data of thread which is fetching a CRL. |
| pthread_mutex_t | mutex | |
| fr_timer_list_t * | timer_list |
The timer list to use for CRL expiry. This gets serviced by the main loop. |
| struct rlm_crl_rctx_t |
Collaboration diagram for rlm_crl_rctx_t:| Data Fields | ||
|---|---|---|
| crl_entry_t * | base_crl | The base CRL relating to the delta currently being fetched. |
| fr_value_box_t * | cdp_url | The URL we're currently attempting to load. |
| fr_value_box_list_t | crl_data | Data from CRL expansion. |
| fr_value_box_list_t | missing_crls | CRLs missing from the tree. |
| crl_check_status_t | status | Status of the current CRL check. |
| struct rlm_crl_t |
Collaboration diagram for rlm_crl_t:| Data Fields | ||
|---|---|---|
| char const * | ca_file | File containing certs for verifying CRL signatures. |
| char const * | ca_path | Directory containing certs for verifying CRL signatures. |
| CONF_SECTION * | cs | Module instance config. |
| fr_time_delta_t | early_refresh | Time interval before nextUpdate to refresh. |
| fr_time_delta_t | force_delta_expiry | Force expiry of delta CRLs after this time. |
| bool | force_delta_expiry_is_set | |
| fr_time_delta_t | force_expiry | Force expiry of CRLs after this time. |
| bool | force_expiry_is_set | |
| rlm_crl_mutable_t * | mutable | Mutable data that's shared between all threads. |
| bool | trigger_rate_limit | Rate limit triggers. |
| X509_STORE * | verify_store | Store of certificates to verify CRL signatures. |
| CONF_SECTION * | virtual_server | Virtual server to use when retrieving CRLs. |
| struct rlm_crl_thread_t |
Thread specific structure to hold requests awaiting CRL fetching.
Collaboration diagram for rlm_crl_thread_t:| Data Fields | ||
|---|---|---|
| fr_rb_tree_t | pending | Requests yielded while the CRL is being fetched. |
| enum crl_check_status_t |
| enum crl_ret_t |
|
static |
|
static |
|
static |
|
static |
| module_rlm_t rlm_crl |
| fr_dict_autoload_t rlm_crl_dict |
| fr_dict_attr_autoload_t rlm_crl_dict_attr |
1.9.8