Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/libecc/src/fp/fp_rand.c
34878 views
1
/*
2
* Copyright (C) 2017 - This file is part of libecc project
3
*
4
* Authors:
5
* Ryad BENADJILA <[email protected]>
6
* Arnaud EBALARD <[email protected]>
7
* Jean-Pierre FLORI <[email protected]>
8
*
9
* Contributors:
10
* Nicolas VIVET <[email protected]>
11
* Karim KHALFALLAH <[email protected]>
12
*
13
* This software is licensed under a dual BSD and GPL v2 license.
14
* See LICENSE file at the root folder of the project.
15
*/
16
17
#include <libecc/fp/fp_rand.h>
18
#include <libecc/nn/nn_rand.h>
19
20
/*
21
* Initialize given Fp element in 'out' storage space to a Fp value chosen
22
* uniformly at random in [1, p-1] where p is provided by 'ctx'. The function
23
* returns 0 on success, -1 on error.
24
*/
25
int fp_get_random(fp_t out, fp_ctx_src_t ctx)
26
{
27
int ret;
28
29
ret = fp_init(out, ctx); EG(ret, err);
30
ret = nn_get_random_mod(&(out->fp_val), &(ctx->p));
31
32
err:
33
return ret;
34
}
35
36