00001
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef _CVSSCALC_H_
00038 #define _CVSSCALC_H_
00039
00041
00042 typedef enum {
00043 AV_LOCAL,
00044 AV_ADJACENT_NETWORK,
00045 AV_NETWORK
00046 } cvss_access_vector_t;
00047
00049
00052 typedef enum {
00053 AC_HIGH,
00054 AC_MEDIUM,
00055 AC_LOW
00056 } cvss_access_complexity_t;
00057
00059
00062 typedef enum {
00063 AU_NONE,
00064 AU_SINGLE_INSTANCE,
00065 AU_MULTIPLE_INSTANCE
00066 } cvss_authentication_t;
00067
00069
00072 typedef enum {
00073 CI_NONE,
00074 CI_PARTIAL,
00075 CI_COMPLETE
00076 } cvss_conf_impact_t;
00077
00079
00082 typedef enum {
00083 II_NONE,
00084 II_PARTIAL,
00085 II_COMPLETE
00086 } cvss_integ_impact_t;
00087
00089
00092 typedef enum {
00093 AI_NONE,
00094 AI_PARTIAL,
00095 AI_COMPLETE
00096 } cvss_avail_impact_t;
00097
00099
00102 typedef enum {
00103 EX_UNPROVEN,
00104 EX_PROOF_OF_CONCEPT,
00105 EX_FUNCTIONAL,
00106 EX_HIGH,
00107 EX_NOT_DEFINED
00108 } cvss_exploitability_t;
00109
00111
00114 typedef enum {
00115 RL_OFFICIAL_FIX,
00116 RL_TEMPORARY_FIX,
00117 RL_WORKAROUND,
00118 RL_UNAVAILABLE,
00119 RL_NOT_DEFINED
00120 } cvss_remediation_level_t;
00121
00123
00127 typedef enum {
00128 RC_UNCONFIRMED,
00129 RC_UNCORROBORATED,
00130 RC_CONFIRMED,
00131 RC_NOT_DEFINED
00132 } cvss_report_confidence_t;
00133
00135
00138 typedef enum {
00139 CD_NONE,
00140 CD_LOW,
00141 CD_LOW_MEDIUM,
00142 CD_MEDIUM_HIGH,
00143 CD_HIGH,
00144 CD_NOT_DEFINED
00145 } cvss_collateral_damage_potential_t;
00146
00148
00152 typedef enum {
00153 TD_NONE,
00154 TD_LOW,
00155 TD_MEDIUM,
00156 TD_HIGH,
00157 TD_NOT_DEFINED
00158 } cvss_target_distribution_t;
00159
00161
00165 typedef enum {
00166 CR_LOW,
00167 CR_MEDIUM,
00168 CR_HIGH,
00169 CR_NOT_DEFINED
00170 } cvss_conf_req_t;
00171
00173
00177 typedef enum {
00178 IR_LOW,
00179 IR_MEDIUM,
00180 IR_HIGH,
00181 IR_NOT_DEFINED
00182 } cvss_integ_req_t;
00183
00185
00189 typedef enum {
00190 AR_LOW,
00191 AR_MEDIUM,
00192 AR_HIGH,
00193 AR_NOT_DEFINED
00194 } cvss_avail_req_t;
00195
00202 int cvss_base_score(cvss_access_vector_t ave, cvss_access_complexity_t ace, cvss_authentication_t aue,
00203 cvss_conf_impact_t cie, cvss_integ_impact_t iie, cvss_avail_impact_t aie,
00204 double *base_score,
00205 double *impact_score,
00206 double *exploitability_score);
00207
00212 int cvss_temp_score(cvss_exploitability_t exe, cvss_remediation_level_t rle,
00213 cvss_report_confidence_t rce, double base_score,
00214 double *temporal_score);
00215
00225 int cvss_env_score(cvss_collateral_damage_potential_t cde, cvss_target_distribution_t tde,
00226 cvss_conf_req_t cre, cvss_integ_req_t ire,
00227 cvss_avail_req_t are, double *enviromental_score,
00228 cvss_access_vector_t ave, cvss_access_complexity_t ace,
00229 cvss_authentication_t aue, cvss_conf_impact_t cie,
00230 cvss_integ_impact_t iie, cvss_avail_impact_t aie,
00231 cvss_exploitability_t exe, cvss_remediation_level_t rle,
00232 cvss_report_confidence_t rce);
00233
00234 #endif