[#BN_BLINDING_create_param]
= BN&lowbar;BLINDING&lowbar;create&lowbar;param
:mrdocs:

Create or refresh RSA blinding factors A and A&circ;&hyphen;1 mod `m&period;`

== Synopsis

Declared in `&lt;openssl&sol;bn&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BN_BLINDING.adoc[BN&lowbar;BLINDING]*
BN&lowbar;BLINDING&lowbar;create&lowbar;param(
    xref:BN_BLINDING.adoc[BN&lowbar;BLINDING]* b,
    xref:BIGNUM.adoc[BIGNUM] const* e,
    xref:BIGNUM.adoc[BIGNUM]* m,
    xref:BN_CTX.adoc[BN&lowbar;CTX]* ctx,
    int(* bn&lowbar;mod&lowbar;exp)(xref:BIGNUM.adoc[BIGNUM]*, xref:BIGNUM.adoc[BIGNUM] const*, xref:BIGNUM.adoc[BIGNUM] const*, xref:BIGNUM.adoc[BIGNUM] const*, xref:BN_CTX.adoc[BN&lowbar;CTX]*, xref:BN_MONT_CTX.adoc[BN&lowbar;MONT&lowbar;CTX]*),
    xref:BN_MONT_CTX.adoc[BN&lowbar;MONT&lowbar;CTX]* m&lowbar;ctx);
----

== Return Value

Blinding object on success, or NULL on error&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *b*
| Existing BN&lowbar;BLINDING to reuse, or NULL to allocate a new one&period;
| *e*
| Public exponent used when generating fresh factors (may be NULL to keep the stored value)&period;
| *m*
| Modulus (copied into the blinding object when `b` is newly allocated)&period;
| *ctx*
| BN&lowbar;CTX scratch space&period;
| *bn&lowbar;mod&lowbar;exp*
| Modular exponentiation callback used internally, or NULL for BN&lowbar;mod&lowbar;exp&lowbar;mont()&period;
| *m&lowbar;ctx*
| Optional Montgomery context passed to `bn&lowbar;mod&lowbar;exp,` or NULL&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
