Update for OpenSSL >= 1.1.0

Signed-off-by: Timothy Pearson <kb9vqf@pearsoncomputing.net>
pull/85/head
Timothy Pearson 5 years ago
parent 9931a73e96
commit 3f6bef6371

@ -732,11 +732,8 @@ if( WITH_PKCS )
tde_message_fatal( "PKCS is requested, but no OpenSC PKCS11 provider was found on your system" ) tde_message_fatal( "PKCS is requested, but no OpenSC PKCS11 provider was found on your system" )
endif( NOT OPENSC_PKCS11_PROVIDER_FOUND ) endif( NOT OPENSC_PKCS11_PROVIDER_FOUND )
pkg_search_module( SSL openssl ) pkg_search_module( SSL openssl )
if( NOT SSL_FOUND OR SSL_VERSION VERSION_LESS "1.1" ) if( SSL_FOUND )
set( HAVE_PKCS 1 ) set( HAVE_PKCS 1 )
else( )
set( WITH_PKCS OFF CACHE INTERNAL "PKCS support is not ready for OpenSSL >= 1.1" FORCE )
message( WARNING "\nPKCS support is not ready for OpenSSL >= 1.1" )
endif( ) endif( )
endif( ) endif( )

@ -643,9 +643,10 @@ TQString TDECryptographicCardDevice::autoPIN() {
int asn1SeqValueObjectTag; int asn1SeqValueObjectTag;
int asn1SeqValueObjectClass; int asn1SeqValueObjectClass;
int returnCode; int returnCode;
const uint8_t* asnSeqValueString = ASN1_STRING_get0_data(asnValue->value.sequence);
index = 0; // Search for the PIN field index = 0; // Search for the PIN field
asnSeqValueStack = ASN1_seq_unpack_ASN1_TYPE(ASN1_STRING_data(asnValue->value.sequence), ASN1_STRING_length(asnValue->value.sequence), d2i_ASN1_TYPE, ASN1_TYPE_free); asnSeqValueStack = d2i_ASN1_SEQUENCE_ANY(NULL, &asnSeqValueString, ASN1_STRING_length(asnValue->value.sequence));
asnSeqValue = sk_ASN1_TYPE_value(asnSeqValueStack, index); asnSeqValue = sk_ASN1_TYPE_value(asnSeqValueStack, index);
if (asnSeqValue) { if (asnSeqValue) {
if (asnSeqValue->value.octet_string->data[0] == ((V_ASN1_CONSTRUCTED | V_ASN1_CONTEXT_SPECIFIC) + index)) { if (asnSeqValue->value.octet_string->data[0] == ((V_ASN1_CONSTRUCTED | V_ASN1_CONTEXT_SPECIFIC) + index)) {
@ -654,12 +655,13 @@ TQString TDECryptographicCardDevice::autoPIN() {
if (!(returnCode & 0x80)) { if (!(returnCode & 0x80)) {
if (returnCode == (V_ASN1_CONSTRUCTED + index)) { if (returnCode == (V_ASN1_CONSTRUCTED + index)) {
if (d2i_ASN1_GENERALSTRING(&asnGeneralString, &asn1SeqValueObjectData, asn1SeqValueObjectLength) != NULL) { if (d2i_ASN1_GENERALSTRING(&asnGeneralString, &asn1SeqValueObjectData, asn1SeqValueObjectLength) != NULL) {
retString = TQString((const char *)ASN1_STRING_data(asnGeneralString)); retString = TQString((const char *)ASN1_STRING_get0_data(asnGeneralString));
} }
} }
} }
} }
} }
sk_ASN1_TYPE_pop_free(asnSeqValueStack, ASN1_TYPE_free);
} }
} }
} }

Loading…
Cancel
Save