Add sig_opts member to X509 structures
diff --git a/include/polarssl/x509.h b/include/polarssl/x509.h
index e11bd90..452ea31 100644
--- a/include/polarssl/x509.h
+++ b/include/polarssl/x509.h
@@ -285,7 +285,8 @@
 #endif
 int x509_get_sig( unsigned char **p, const unsigned char *end, x509_buf *sig );
 int x509_get_sig_alg( const x509_buf *sig_oid, const x509_buf *sig_params,
-                      md_type_t *md_alg, pk_type_t *pk_alg );
+                      md_type_t *md_alg, pk_type_t *pk_alg,
+                      void **sig_opts );
 int x509_get_time( unsigned char **p, const unsigned char *end,
                    x509_time *time );
 int x509_get_serial( unsigned char **p, const unsigned char *end,
diff --git a/include/polarssl/x509_crl.h b/include/polarssl/x509_crl.h
index 81d4734..5c4564a 100644
--- a/include/polarssl/x509_crl.h
+++ b/include/polarssl/x509_crl.h
@@ -92,8 +92,9 @@
     x509_buf sig_oid2;
     x509_buf sig;
     md_type_t sig_md;           /**< Internal representation of the MD algorithm of the signature algorithm, e.g. POLARSSL_MD_SHA256 */
-    pk_type_t sig_pk            /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. POLARSSL_PK_RSA */;
+    pk_type_t sig_pk;           /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. POLARSSL_PK_RSA */
 #if defined(POLARSSL_RSASSA_PSS_CERTIFICATES)
+    void *sig_opts;             /**< Signature options to be passed to pk_verify_ext(), eg for RSASSA-PSS */
     x509_buf sig_params;        /**< Parameters for the signature algorithm */
 #endif
 
diff --git a/include/polarssl/x509_crt.h b/include/polarssl/x509_crt.h
index 09cc982..8668631 100644
--- a/include/polarssl/x509_crt.h
+++ b/include/polarssl/x509_crt.h
@@ -92,8 +92,9 @@
     x509_buf sig_oid2;          /**< Signature algorithm. Must match sig_oid1. */
     x509_buf sig;               /**< Signature: hash of the tbs part signed with the private key. */
     md_type_t sig_md;           /**< Internal representation of the MD algorithm of the signature algorithm, e.g. POLARSSL_MD_SHA256 */
-    pk_type_t sig_pk            /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. POLARSSL_PK_RSA */;
+    pk_type_t sig_pk;           /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. POLARSSL_PK_RSA */
 #if defined(POLARSSL_RSASSA_PSS_CERTIFICATES)
+    void *sig_opts;             /**< Signature options to be passed to pk_verify_ext(), eg for RSASSA-PSS */
     x509_buf sig_params;        /**< Parameters for the signature algorithm */
 #endif
 
diff --git a/include/polarssl/x509_csr.h b/include/polarssl/x509_csr.h
index af3f226..28ddeda 100644
--- a/include/polarssl/x509_csr.h
+++ b/include/polarssl/x509_csr.h
@@ -66,8 +66,9 @@
     x509_buf sig_oid;
     x509_buf sig;
     md_type_t sig_md;       /**< Internal representation of the MD algorithm of the signature algorithm, e.g. POLARSSL_MD_SHA256 */
-    pk_type_t sig_pk        /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. POLARSSL_PK_RSA */;
+    pk_type_t sig_pk;       /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. POLARSSL_PK_RSA */
 #if defined(POLARSSL_RSASSA_PSS_CERTIFICATES)
+    void *sig_opts;             /**< Signature options to be passed to pk_verify_ext(), eg for RSASSA-PSS */
     x509_buf sig_params;        /**< Parameters for the signature algorithm */
 #endif
 }