Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea644b8c authored by Kamil Konieczny's avatar Kamil Konieczny Committed by Herbert Xu
Browse files

crypto: doc - Fixed bugs, added example usage of calc_hash().



- Fixed bugs in example for shash and rng (added missing "*" and " *").
- Corrected pr_info() in calc_hash().
- Added example usage of calc_hash().
- No need for negate PTR_ERR to get error code, as crypto_alloc_rng
  already returns negative values like ERR_PTR(-ENOMEM). Fixed.

Signed-off-by: default avatarKamil Konieczny <k.konieczny@partner.samsung.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 8270f5d7
Loading
Loading
Loading
Loading
+28 −10
Original line number Diff line number Diff line
@@ -155,9 +155,9 @@ Code Example For Use of Operational State Memory With SHASH
        char ctx[];
    };

    static struct sdesc init_sdesc(struct crypto_shash *alg)
    static struct sdesc *init_sdesc(struct crypto_shash *alg)
    {
        struct sdesc sdesc;
        struct sdesc *sdesc;
        int size;

        size = sizeof(struct shash_desc) + crypto_shash_descsize(alg);
@@ -169,15 +169,16 @@ Code Example For Use of Operational State Memory With SHASH
        return sdesc;
    }

    static int calc_hash(struct crypto_shashalg,
                 const unsigned chardata, unsigned int datalen,
                 unsigned chardigest) {
        struct sdesc sdesc;
    static int calc_hash(struct crypto_shash *alg,
                 const unsigned char *data, unsigned int datalen,
                 unsigned char *digest)
    {
        struct sdesc *sdesc;
        int ret;

        sdesc = init_sdesc(alg);
        if (IS_ERR(sdesc)) {
            pr_info("trusted_key: can't alloc %s\n", hash_alg);
            pr_info("can't alloc sdesc\n");
            return PTR_ERR(sdesc);
        }

@@ -186,6 +187,23 @@ Code Example For Use of Operational State Memory With SHASH
        return ret;
    }

    static int test_hash(const unsigned char *data, unsigned int datalen,
                 unsigned char *digest)
    {
        struct crypto_shash *alg;
        char *hash_alg_name = "sha1-padlock-nano";
        int ret;

        alg = crypto_alloc_shash(hash_alg_name, CRYPTO_ALG_TYPE_SHASH, 0);
        if (IS_ERR(alg)) {
                pr_info("can't alloc alg %s\n", hash_alg_name);
                return PTR_ERR(alg);
        }
        ret = calc_hash(alg, data, datalen, digest);
        crypto_free_shash(alg);
        return ret;
    }


Code Example For Random Number Generator Usage
----------------------------------------------
@@ -195,8 +213,8 @@ Code Example For Random Number Generator Usage

    static int get_random_numbers(u8 *buf, unsigned int len)
    {
        struct crypto_rngrng = NULL;
        chardrbg = "drbg_nopr_sha256"; /* Hash DRBG with SHA-256, no PR */
        struct crypto_rng *rng = NULL;
        char *drbg = "drbg_nopr_sha256"; /* Hash DRBG with SHA-256, no PR */
        int ret;

        if (!buf || !len) {
@@ -207,7 +225,7 @@ Code Example For Random Number Generator Usage
        rng = crypto_alloc_rng(drbg, 0, 0);
        if (IS_ERR(rng)) {
            pr_debug("could not allocate RNG handle for %s\n", drbg);
            return -PTR_ERR(rng);
            return PTR_ERR(rng);
        }

        ret = crypto_rng_get_bytes(rng, buf, len);