mirror of
https://github.com/zeek/zeek.git
synced 2025-10-14 04:28:20 +00:00
OCSP: parse signed certificate timestamps
With this change, we also parse signed certificate timestamps from OCSP replies. This introduces a common base class between the OCSP and X509 analyzer, which now share a bit of common code. The event for signed certificate timestamps is raised by both and thus renamed do: x509_ocsp_ext_signed_certificate_timestamp
This commit is contained in:
parent
b061a5db1a
commit
c550521221
11 changed files with 404 additions and 391 deletions
44
src/file_analysis/analyzer/x509/X509Common.h
Normal file
44
src/file_analysis/analyzer/x509/X509Common.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
// See the file "COPYING" in the main distribution directory for copyright.
|
||||
|
||||
// Common base class for the X509 and OCSP analyzer, which share a fair amount of
|
||||
// code
|
||||
|
||||
#ifndef FILE_ANALYSIS_X509_COMMON
|
||||
#define FILE_ANALYSIS_X509_COMMON
|
||||
|
||||
#include "../File.h"
|
||||
#include "Analyzer.h"
|
||||
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
namespace file_analysis {
|
||||
|
||||
class X509Common : public file_analysis::Analyzer {
|
||||
public:
|
||||
virtual ~X509Common() {};
|
||||
|
||||
/**
|
||||
* Retrieve an X509 extension value from an OpenSSL BIO to which it was
|
||||
* written.
|
||||
*
|
||||
* @param bio the OpenSSL BIO to read. It will be freed by the function,
|
||||
* including when an error occurs.
|
||||
*
|
||||
* @return The X509 extension value.
|
||||
*/
|
||||
static StringVal* GetExtensionFromBIO(BIO* bio);
|
||||
|
||||
static double GetTimeFromAsn1(const ASN1_TIME* atime, const char* arg_fid, Reporter* reporter);
|
||||
|
||||
protected:
|
||||
X509Common(file_analysis::Tag arg_tag, RecordVal* arg_args, File* arg_file);
|
||||
|
||||
void ParseExtension(X509_EXTENSION* ex, EventHandlerPtr h, bool global);
|
||||
void ParseSignedCertificateTimestamps(X509_EXTENSION* ext);
|
||||
virtual void ParseExtensionsSpecific(X509_EXTENSION* ex, bool, ASN1_OBJECT*, const char*) = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* FILE_ANALYSIS_X509_COMMON */
|
Loading…
Add table
Add a link
Reference in a new issue