gadgets.cc File Reference
#include "squid.h"
#include "ssl/gadgets.h"
#include <openssl/asn1.h>
Include dependency graph for gadgets.cc:

Go to the source code of this file.

Functions

static bool setSerialNumber (ASN1_INTEGER *ai, BIGNUM const *serial)
 
static bool replaceCommonName (Security::CertPointer &cert, std::string const &rawCn)
 
static void printX509Signature (const Security::CertPointer &cert, std::string &out)
 
static bool mimicAuthorityKeyId (Security::CertPointer &cert, Security::CertPointer const &mimicCert, Security::CertPointer const &issuerCert)
 
static int mimicExtensions (Security::CertPointer &cert, Security::CertPointer const &mimicCert, Security::CertPointer const &issuerCert)
 
static bool addAltNameWithSubjectCn (Security::CertPointer &cert)
 
static bool buildCertificate (Security::CertPointer &cert, Ssl::CertificateProperties const &properties)
 
static bool generateFakeSslCertificate (Security::CertPointer &certToStore, Security::PrivateKeyPointer &pkeyToStore, Ssl::CertificateProperties const &properties, Ssl::BIGNUM_Pointer const &serial)
 
static BIGNUM * createCertSerial (unsigned char *md, unsigned int n)
 
static BIGNUM * x509Digest (Security::CertPointer const &cert)
 
static BIGNUM * x509Pubkeydigest (Security::CertPointer const &cert)
 
static bool createSerial (Ssl::BIGNUM_Pointer &serial, Ssl::CertificateProperties const &properties)
 
static bool asn1timeToGeneralizedTimeStr (ASN1_TIME *aTime, char *buf, int bufLen)
 Print the time represented by a ASN1_TIME struct to a string using GeneralizedTime format. More...
 
static int asn1time_cmp (ASN1_TIME *asnTime1, ASN1_TIME *asnTime2)
 
static const char * getSubjectEntry (X509 *x509, int nid)
 

Variables

static const size_t MaxCnLen = 64
 

Function Documentation

static bool addAltNameWithSubjectCn ( Security::CertPointer &  cert)
static

Adds a new subjectAltName extension contining Subject CN or returns false expects the caller to check for the existing subjectAltName extension

Definition at line 443 of file gadgets.cc.

References NULL.

Referenced by buildCertificate().

static int asn1time_cmp ( ASN1_TIME *  asnTime1,
ASN1_TIME *  asnTime2 
)
static

Definition at line 811 of file gadgets.cc.

References asn1timeToGeneralizedTimeStr().

Referenced by Ssl::certificateMatchesProperties().

static bool asn1timeToGeneralizedTimeStr ( ASN1_TIME *  aTime,
char *  buf,
int  bufLen 
)
static

Definition at line 782 of file gadgets.cc.

References buf.

Referenced by asn1time_cmp().

static BIGNUM* createCertSerial ( unsigned char *  md,
unsigned int  n 
)
static

Definition at line 608 of file gadgets.cc.

References assert, and NULL.

Referenced by x509Digest(), and x509Pubkeydigest().

static bool createSerial ( Ssl::BIGNUM_Pointer serial,
Ssl::CertificateProperties const &  properties 
)
static

Generate a unique serial number based on a Ssl::CertificateProperties object for a new generated certificate

Definition at line 661 of file gadgets.cc.

References generateFakeSslCertificate(), Ssl::CertificateProperties::signWithX509, x509Digest(), and x509Pubkeydigest().

Referenced by Ssl::generateSslCertificate().

static bool generateFakeSslCertificate ( Security::CertPointer &  certToStore,
Security::PrivateKeyPointer &  pkeyToStore,
Ssl::CertificateProperties const &  properties,
Ssl::BIGNUM_Pointer const &  serial 
)
static
static const char* getSubjectEntry ( X509 *  x509,
int  nid 
)
static

Definition at line 895 of file gadgets.cc.

References NULL.

Referenced by Ssl::CommonHostName(), and Ssl::getOrganization().

static bool mimicAuthorityKeyId ( Security::CertPointer &  cert,
Security::CertPointer const &  mimicCert,
Security::CertPointer const &  issuerCert 
)
static

Check if mimicCert certificate has the Authority Key Identifier extension and if yes add the extension to cert certificate with the same fields if possible. If the issuerCert certificate does not have the Subject Key Identifier extension (required to build the keyIdentifier field of AuthorityKeyIdentifier) then the authorityCertIssuer and authorityCertSerialNumber fields added.

issuer name and issuer serial

Definition at line 281 of file gadgets.cc.

References method, and NULL.

Referenced by mimicExtensions().

static int mimicExtensions ( Security::CertPointer &  cert,
Security::CertPointer const &  mimicCert,
Security::CertPointer const &  issuerCert 
)
static

Copy certificate extensions from cert to mimicCert. Returns the number of extensions copied.

Definition at line 362 of file gadgets.cc.

References assert, i, method, mimicAuthorityKeyId(), NULL, and p.

Referenced by buildCertificate().

static void printX509Signature ( const Security::CertPointer &  cert,
std::string &  out 
)
static

Definition at line 223 of file gadgets.cc.

References i, and Ssl::X509_get_signature().

Referenced by Ssl::OnDiskCertificateDbKey().

static bool replaceCommonName ( Security::CertPointer &  cert,
std::string const &  rawCn 
)
static

Definition at line 157 of file gadgets.cc.

References MaxCnLen.

Referenced by buildCertificate().

static BIGNUM* x509Digest ( Security::CertPointer const &  cert)
static

Return the SHA1 digest of the DER encoded version of the certificate stored in a BIGNUM

Definition at line 637 of file gadgets.cc.

References createCertSerial(), and NULL.

Referenced by createSerial().

static BIGNUM* x509Pubkeydigest ( Security::CertPointer const &  cert)
static

Definition at line 648 of file gadgets.cc.

References createCertSerial(), and NULL.

Referenced by createSerial().

Variable Documentation

const size_t MaxCnLen = 64
static

Definition at line 154 of file gadgets.cc.

Referenced by replaceCommonName().

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors