Set flags in ECDH and ECDSA methods for FIPS.
authorDr. Stephen Henson <steve@openssl.org>
Wed, 8 Jun 2011 13:52:36 +0000 (13:52 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 8 Jun 2011 13:52:36 +0000 (13:52 +0000)
crypto/ecdh/ech_locl.h
crypto/ecdh/ech_ossl.c
crypto/ecdsa/ecs_locl.h
crypto/ecdsa/ecs_ossl.c

index f658526..f6cad6a 100644 (file)
@@ -75,6 +75,14 @@ struct ecdh_method
        char *app_data;
        };
 
+/* If this flag is set the ECDH method is FIPS compliant and can be used
+ * in FIPS mode. This is set in the validated module method. If an
+ * application sets this flag in its own methods it is its responsibility
+ * to ensure the result is compliant.
+ */
+
+#define ECDH_FLAG_FIPS_METHOD  0x1
+
 typedef struct ecdh_data_st {
        /* EC_KEY_METH_DATA part */
        int (*init)(EC_KEY *);
index ceaa2f0..f93dfcb 100644 (file)
@@ -91,7 +91,7 @@ static ECDH_METHOD openssl_ecdh_meth = {
        NULL, /* init     */
        NULL, /* finish   */
 #endif
-       0,    /* flags    */
+       ECDH_FLAG_FIPS_METHOD,    /* flags    */
        NULL  /* app_data */
 };
 
index 3a69a84..cb3be13 100644 (file)
@@ -82,6 +82,14 @@ struct ecdsa_method
        char *app_data;
        };
 
+/* If this flag is set the ECDSA method is FIPS compliant and can be used
+ * in FIPS mode. This is set in the validated module method. If an
+ * application sets this flag in its own methods it is its responsibility
+ * to ensure the result is compliant.
+ */
+
+#define ECDSA_FLAG_FIPS_METHOD 0x1
+
 typedef struct ecdsa_data_st {
        /* EC_KEY_METH_DATA part */
        int (*init)(EC_KEY *);
index 50d02ed..8b407c5 100644 (file)
@@ -79,7 +79,7 @@ static ECDSA_METHOD openssl_ecdsa_meth = {
        NULL, /* init     */
        NULL, /* finish   */
 #endif
-       0,    /* flags    */
+       ECDSA_FLAG_FIPS_METHOD,    /* flags    */
        NULL  /* app_data */
 };