tdehwlib: Re-enable OpenSSL < 1.1 compatibility

in tdecryptographiccarddevice.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/85/head
Slávek Banko 5 years ago
parent 3f6bef6371
commit 444839e053
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -643,10 +643,18 @@ TQString TDECryptographicCardDevice::autoPIN() {
int asn1SeqValueObjectTag; int asn1SeqValueObjectTag;
int asn1SeqValueObjectClass; int asn1SeqValueObjectClass;
int returnCode; int returnCode;
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
uint8_t* asnSeqValueString = ASN1_STRING_data(asnValue->value.sequence);
#else
const uint8_t* asnSeqValueString = ASN1_STRING_get0_data(asnValue->value.sequence); const uint8_t* asnSeqValueString = ASN1_STRING_get0_data(asnValue->value.sequence);
#endif
index = 0; // Search for the PIN field index = 0; // Search for the PIN field
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
asnSeqValueStack = ASN1_seq_unpack_ASN1_TYPE(asnSeqValueString, ASN1_STRING_length(asnValue->value.sequence), d2i_ASN1_TYPE, ASN1_TYPE_free);
#else
asnSeqValueStack = d2i_ASN1_SEQUENCE_ANY(NULL, &asnSeqValueString, ASN1_STRING_length(asnValue->value.sequence)); asnSeqValueStack = d2i_ASN1_SEQUENCE_ANY(NULL, &asnSeqValueString, ASN1_STRING_length(asnValue->value.sequence));
#endif
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)) {
@ -655,13 +663,19 @@ 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) {
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
retString = TQString((const char *)ASN1_STRING_data(asnGeneralString));
#else
retString = TQString((const char *)ASN1_STRING_get0_data(asnGeneralString)); retString = TQString((const char *)ASN1_STRING_get0_data(asnGeneralString));
#endif
} }
} }
} }
} }
} }
#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
sk_ASN1_TYPE_pop_free(asnSeqValueStack, ASN1_TYPE_free); sk_ASN1_TYPE_pop_free(asnSeqValueStack, ASN1_TYPE_free);
#endif
} }
} }
} }

Loading…
Cancel
Save