aptos-move/framework/aptos-stdlib/doc/secp256r1.md
<a id="0x1_secp256r1"></a>
0x1::secp256r1This module implements ECDSA signatures based on the prime-order secp256r1 ellptic curve (i.e., cofactor is 1).
ECDSARawPublicKeyecdsa_raw_public_key_from_64_bytesecdsa_raw_public_key_to_bytes<a id="0x1_secp256r1_ECDSARawPublicKey"></a>
ECDSARawPublicKeyA 64-byte ECDSA public key.
<pre><code><b>struct</b> <a href="secp256r1.md#0x1_secp256r1_ECDSARawPublicKey">ECDSARawPublicKey</a> <b>has</b> <b>copy</b>, drop, store </code></pre> <details> <summary>Fields</summary> <dl> <dt> <code>bytes: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a><u8></code> </dt> <dd> </dd> </dl> </details><a id="@Constants_0"></a>
<a id="0x1_secp256r1_E_DESERIALIZE"></a>
An error occurred while deserializing, for example due to wrong input size.
<pre><code><b>const</b> <a href="secp256r1.md#0x1_secp256r1_E_DESERIALIZE">E_DESERIALIZE</a>: u64 = 1; </code></pre><a id="0x1_secp256r1_RAW_PUBLIC_KEY_NUM_BYTES"></a>
The size of a secp256k1-based ECDSA public key, in bytes.
<pre><code><b>const</b> <a href="secp256r1.md#0x1_secp256r1_RAW_PUBLIC_KEY_NUM_BYTES">RAW_PUBLIC_KEY_NUM_BYTES</a>: u64 = 64; </code></pre><a id="0x1_secp256r1_ecdsa_raw_public_key_from_64_bytes"></a>
ecdsa_raw_public_key_from_64_bytesConstructs an ECDSARawPublicKey struct, given a 64-byte raw representation.
<pre><code><b>public</b> <b>fun</b> <a href="secp256r1.md#0x1_secp256r1_ecdsa_raw_public_key_from_64_bytes">ecdsa_raw_public_key_from_64_bytes</a>(bytes: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a><u8>): <a href="secp256r1.md#0x1_secp256r1_ECDSARawPublicKey">secp256r1::ECDSARawPublicKey</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="secp256r1.md#0x1_secp256r1_ecdsa_raw_public_key_from_64_bytes">ecdsa_raw_public_key_from_64_bytes</a>(bytes: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a><u8>): <a href="secp256r1.md#0x1_secp256r1_ECDSARawPublicKey">ECDSARawPublicKey</a> { <b>assert</b>!(bytes.length() == <a href="secp256r1.md#0x1_secp256r1_RAW_PUBLIC_KEY_NUM_BYTES">RAW_PUBLIC_KEY_NUM_BYTES</a>, std::error::invalid_argument(<a href="secp256r1.md#0x1_secp256r1_E_DESERIALIZE">E_DESERIALIZE</a>)); <a href="secp256r1.md#0x1_secp256r1_ECDSARawPublicKey">ECDSARawPublicKey</a> { bytes } } </code></pre> </details><a id="0x1_secp256r1_ecdsa_raw_public_key_to_bytes"></a>
ecdsa_raw_public_key_to_bytesSerializes an ECDSARawPublicKey struct to 64-bytes.
<pre><code><b>public</b> <b>fun</b> <a href="secp256r1.md#0x1_secp256r1_ecdsa_raw_public_key_to_bytes">ecdsa_raw_public_key_to_bytes</a>(pk: &<a href="secp256r1.md#0x1_secp256r1_ECDSARawPublicKey">secp256r1::ECDSARawPublicKey</a>): <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a><u8> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="secp256r1.md#0x1_secp256r1_ecdsa_raw_public_key_to_bytes">ecdsa_raw_public_key_to_bytes</a>(pk: &<a href="secp256r1.md#0x1_secp256r1_ECDSARawPublicKey">ECDSARawPublicKey</a>): <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a><u8> { pk.bytes } </code></pre> </details><a id="@Specification_1"></a>