Fix a shed load or warnings:
[openssl.git] / crypto / x509 / x509type.c
index 8e78b344581e016af982ccb168963a6a759ba1cb..3385ad3f67cbe405f18692235b1bb086d63a4633 100644 (file)
@@ -86,8 +86,15 @@ int X509_certificate_type(X509 *x, EVP_PKEY *pkey)
        case EVP_PKEY_DSA:
                ret=EVP_PK_DSA|EVP_PKT_SIGN;
                break;
+       case EVP_PKEY_EC:
+               ret=EVP_PK_EC|EVP_PKT_SIGN|EVP_PKT_EXCH;
+               break;
        case EVP_PKEY_DH:
                ret=EVP_PK_DH|EVP_PKT_EXCH;
+               break;  
+       case NID_id_GostR3410_94:
+       case NID_id_GostR3410_2001:
+               ret=EVP_PKT_EXCH|EVP_PKT_SIGN;
                break;
        default:
                break;
@@ -99,14 +106,18 @@ int X509_certificate_type(X509 *x, EVP_PKEY *pkey)
        case EVP_PKEY_RSA:
                ret|=EVP_PKS_RSA;
                break;
-       case EVP_PKS_DSA:
+       case EVP_PKEY_DSA:
                ret|=EVP_PKS_DSA;
                break;
+       case EVP_PKEY_EC:
+               ret|=EVP_PKS_EC;
+               break;
        default:
                break;
                }
 
-       if (EVP_PKEY_size(pk) <= 512)
+       if (EVP_PKEY_size(pk) <= 1024/8)/* /8 because it's 1024 bits we look
+                                          for, not bytes */
                ret|=EVP_PKT_EXP;
        if(pkey==NULL) EVP_PKEY_free(pk);
        return(ret);