In some cases, EVMSERR isn't visible (that's fairly new...).
[openssl.git] / crypto / evp / p_dec.c
index e845ce70c707babca1c5b4b753f410003b9b7093..f64901f653495b1961b75da6d539fb76b292288f 100644 (file)
 
 #include <stdio.h>
 #include "cryptlib.h"
-#include "rand.h"
-#include "rsa.h"
-#include "evp.h"
-#include "objects.h"
-#include "x509.h"
+#include <openssl/rand.h>
+#ifndef OPENSSL_NO_RSA
+#include <openssl/rsa.h>
+#endif
+#include <openssl/evp.h>
+#include <openssl/objects.h>
+#include <openssl/x509.h>
 
-int EVP_PKEY_decrypt(key,ek,ekl,priv)
-unsigned char *key;
-unsigned char *ek;
-int ekl;
-EVP_PKEY *priv;
+int EVP_PKEY_decrypt(unsigned char *key, const unsigned char *ek, int ekl,
+            EVP_PKEY *priv)
        {
        int ret= -1;
        
+#ifndef OPENSSL_NO_RSA
        if (priv->type != EVP_PKEY_RSA)
                {
+#endif
                EVPerr(EVP_F_EVP_PKEY_DECRYPT,EVP_R_PUBLIC_KEY_NOT_RSA);
+#ifndef OPENSSL_NO_RSA
                goto err;
                 }
 
        ret=RSA_private_decrypt(ekl,ek,key,priv->pkey.rsa,RSA_PKCS1_PADDING);
 err:
+#endif
        return(ret);
        }