diff --git a/crypto/x509/internal.h b/crypto/x509/internal.h
index 360a19c..dcff849 100644
--- a/crypto/x509/internal.h
+++ b/crypto/x509/internal.h
@@ -110,7 +110,7 @@
 typedef struct {
   ASN1_INTEGER *version;  // [ 0 ] default of v1
   ASN1_INTEGER *serialNumber;
-  X509_ALGOR *signature;
+  X509_ALGOR *tbs_sig_alg;
   X509_NAME *issuer;
   X509_VAL *validity;
   X509_NAME *subject;
diff --git a/crypto/x509/t_x509.cc b/crypto/x509/t_x509.cc
index 808d1c3..1264cb0 100644
--- a/crypto/x509/t_x509.cc
+++ b/crypto/x509/t_x509.cc
@@ -107,7 +107,7 @@
   }
 
   if (!(cflag & X509_FLAG_NO_SIGNAME)) {
-    if (X509_signature_print(bp, ci->signature, NULL) <= 0) {
+    if (X509_signature_print(bp, ci->tbs_sig_alg, NULL) <= 0) {
       return 0;
     }
   }
diff --git a/crypto/x509/x509_set.cc b/crypto/x509/x509_set.cc
index 332c0a5..76c86d3 100644
--- a/crypto/x509/x509_set.cc
+++ b/crypto/x509/x509_set.cc
@@ -190,7 +190,7 @@
 }
 
 const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x) {
-  return x->cert_info->signature;
+  return x->cert_info->tbs_sig_alg;
 }
 
 X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x509) {
diff --git a/crypto/x509/x_all.cc b/crypto/x509/x_all.cc
index 2290255..73f620a 100644
--- a/crypto/x509/x_all.cc
+++ b/crypto/x509/x_all.cc
@@ -29,7 +29,7 @@
 
 
 int X509_verify(X509 *x509, EVP_PKEY *pkey) {
-  if (X509_ALGOR_cmp(&x509->sig_alg, x509->cert_info->signature)) {
+  if (X509_ALGOR_cmp(&x509->sig_alg, x509->cert_info->tbs_sig_alg)) {
     OPENSSL_PUT_ERROR(X509, X509_R_SIGNATURE_ALGORITHM_MISMATCH);
     return 0;
   }
@@ -44,13 +44,13 @@
 
 int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md) {
   asn1_encoding_clear(&x->cert_info->enc);
-  return (ASN1_item_sign(ASN1_ITEM_rptr(X509_CINF), x->cert_info->signature,
+  return (ASN1_item_sign(ASN1_ITEM_rptr(X509_CINF), x->cert_info->tbs_sig_alg,
                          &x->sig_alg, &x->signature, x->cert_info, pkey, md));
 }
 
 int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx) {
   asn1_encoding_clear(&x->cert_info->enc);
-  return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CINF), x->cert_info->signature,
+  return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CINF), x->cert_info->tbs_sig_alg,
                             &x->sig_alg, &x->signature, x->cert_info, ctx);
 }
 
diff --git a/crypto/x509/x_x509.cc b/crypto/x509/x_x509.cc
index c8cf7e0..f4793d4 100644
--- a/crypto/x509/x_x509.cc
+++ b/crypto/x509/x_x509.cc
@@ -35,7 +35,7 @@
 ASN1_SEQUENCE_enc(X509_CINF, enc, 0) = {
     ASN1_EXP_OPT(X509_CINF, version, ASN1_INTEGER, 0),
     ASN1_SIMPLE(X509_CINF, serialNumber, ASN1_INTEGER),
-    ASN1_SIMPLE(X509_CINF, signature, X509_ALGOR),
+    ASN1_SIMPLE(X509_CINF, tbs_sig_alg, X509_ALGOR),
     ASN1_SIMPLE(X509_CINF, issuer, X509_NAME),
     ASN1_SIMPLE(X509_CINF, validity, X509_VAL),
     ASN1_SIMPLE(X509_CINF, subject, X509_NAME),
@@ -393,7 +393,7 @@
 
 int X509_set1_signature_algo(X509 *x509, const X509_ALGOR *algo) {
   return X509_ALGOR_copy(&x509->sig_alg, algo) &&
-         X509_ALGOR_copy(x509->cert_info->signature, algo);
+         X509_ALGOR_copy(x509->cert_info->tbs_sig_alg, algo);
 }
 
 int X509_set1_signature_value(X509 *x509, const uint8_t *sig, size_t sig_len) {
