perf hists browser: Be a bit more strict about presenting CPU socket zoom
[cascardo/linux.git] / crypto / rsa.c
index 1093e04..77d737f 100644 (file)
@@ -13,6 +13,7 @@
 #include <crypto/internal/rsa.h>
 #include <crypto/internal/akcipher.h>
 #include <crypto/akcipher.h>
+#include <crypto/algapi.h>
 
 /*
  * RSAEP function [RFC3447 sec 5.1.1]
@@ -91,12 +92,6 @@ static int rsa_enc(struct akcipher_request *req)
                goto err_free_c;
        }
 
-       if (req->dst_len < mpi_get_size(pkey->n)) {
-               req->dst_len = mpi_get_size(pkey->n);
-               ret = -EOVERFLOW;
-               goto err_free_c;
-       }
-
        ret = -ENOMEM;
        m = mpi_read_raw_from_sgl(req->src, req->src_len);
        if (!m)
@@ -136,12 +131,6 @@ static int rsa_dec(struct akcipher_request *req)
                goto err_free_m;
        }
 
-       if (req->dst_len < mpi_get_size(pkey->n)) {
-               req->dst_len = mpi_get_size(pkey->n);
-               ret = -EOVERFLOW;
-               goto err_free_m;
-       }
-
        ret = -ENOMEM;
        c = mpi_read_raw_from_sgl(req->src, req->src_len);
        if (!c)
@@ -180,12 +169,6 @@ static int rsa_sign(struct akcipher_request *req)
                goto err_free_s;
        }
 
-       if (req->dst_len < mpi_get_size(pkey->n)) {
-               req->dst_len = mpi_get_size(pkey->n);
-               ret = -EOVERFLOW;
-               goto err_free_s;
-       }
-
        ret = -ENOMEM;
        m = mpi_read_raw_from_sgl(req->src, req->src_len);
        if (!m)
@@ -225,12 +208,6 @@ static int rsa_verify(struct akcipher_request *req)
                goto err_free_m;
        }
 
-       if (req->dst_len < mpi_get_size(pkey->n)) {
-               req->dst_len = mpi_get_size(pkey->n);
-               ret = -EOVERFLOW;
-               goto err_free_m;
-       }
-
        ret = -ENOMEM;
        s = mpi_read_raw_from_sgl(req->src, req->src_len);
        if (!s) {
@@ -339,11 +316,24 @@ static struct akcipher_alg rsa = {
 
 static int rsa_init(void)
 {
-       return crypto_register_akcipher(&rsa);
+       int err;
+
+       err = crypto_register_akcipher(&rsa);
+       if (err)
+               return err;
+
+       err = crypto_register_template(&rsa_pkcs1pad_tmpl);
+       if (err) {
+               crypto_unregister_akcipher(&rsa);
+               return err;
+       }
+
+       return 0;
 }
 
 static void rsa_exit(void)
 {
+       crypto_unregister_template(&rsa_pkcs1pad_tmpl);
        crypto_unregister_akcipher(&rsa);
 }