first part: const or not const that is the question; refs #6

master
Marc Wäckerlin 14 years ago
parent b637655975
commit 73ff9f1a34
  1. 17
      src/openssl.hxx

@ -17,6 +17,17 @@
#include <openssl/err.h> #include <openssl/err.h>
#include <vector> #include <vector>
#include <openssl/opensslv.h>
#ifndef OPENSSL_VERSION_NUMBER
# error OpenSSL Version Number not Found
#elif OPENSSL_VERSION_NUMBER < 0x01000000L
# define OPENSSL_0
# define V0_CONST const
#else
# define OPENSSL_1
# define V0_CONST /* no const in openssl 1.0.0 */
#endif
#include <openssl/x509v3.h> // BASIC_CONSTRAINTS #include <openssl/x509v3.h> // BASIC_CONSTRAINTS
#include <openssl/bn.h> #include <openssl/bn.h>
#include <cryptaux.hxx> #include <cryptaux.hxx>
@ -724,7 +735,7 @@ namespace openssl {
//! Initialize from DER encoded cerificate. //! Initialize from DER encoded cerificate.
X509(const std::string& der): _x509(0) { X509(const std::string& der): _x509(0) {
OPENSSL_LOG("log"); OPENSSL_LOG("log");
unsigned char* c((unsigned char*)der.begin().operator->()); V0_CONST unsigned char* c((unsigned char*)der.begin().operator->());
if (!(_x509=d2i_X509(0, &c, der.size())) || if (!(_x509=d2i_X509(0, &c, der.size())) ||
(const char*)c!=der.begin().operator->()+der.size()) (const char*)c!=der.begin().operator->()+der.size())
throw x509_decoding_failed(der); throw x509_decoding_failed(der);
@ -734,7 +745,7 @@ namespace openssl {
unsigned char* d(0); unsigned char* d(0);
int len(i2d_X509(o._x509, &d)); int len(i2d_X509(o._x509, &d));
if (!len) throw x509_copy_failed(); if (!len) throw x509_copy_failed();
unsigned char* d2(d); V0_CONST unsigned char* d2(d);
_x509 = d2i_X509(0, &d2, len); _x509 = d2i_X509(0, &d2, len);
OPENSSL_free(d); OPENSSL_free(d);
if (!_x509) throw x509_copy_failed(); if (!_x509) throw x509_copy_failed();
@ -755,7 +766,7 @@ namespace openssl {
unsigned char* d(0); unsigned char* d(0);
int len(i2d_X509(o._x509, &d)); int len(i2d_X509(o._x509, &d));
if (!len) throw x509_copy_failed(); if (!len) throw x509_copy_failed();
unsigned char* d2(d); V0_CONST unsigned char* d2(d);
_x509 = d2i_X509(0, &d2, len); _x509 = d2i_X509(0, &d2, len);
OPENSSL_free(d); OPENSSL_free(d);
if (!_x509) throw x509_copy_failed(); if (!_x509) throw x509_copy_failed();

Loading…
Cancel
Save