# Crate k256_flow[−][src]

## Expand description

Pure Rust implementation of the secp256k1 (K-256) elliptic curve, including support for the Elliptic Curve Digital Signature Algorithm (ECDSA), Elliptic Curve Diffie-Hellman (ECDH), and general purpose elliptic curve/field arithmetic which can be used to implement protocols based on group operations.

## About secp256k1 (K-256)

secp256k1 is a Koblitz curve commonly used in cryptocurrency applications. The “K-256” name follows NIST notation where P = prime fields, B = binary fields, and K = Koblitz curves.

The curve is specified as `secp256k1`

by Certicom’s SECG in
“SEC 2: Recommended Elliptic Curve Domain Parameters”:

https://www.secg.org/sec2-v2.pdf

## ⚠️ Security Warning

The elliptic curve arithmetic contained in this crate has never been independently audited!

This crate has been designed with the goal of ensuring that secret-dependent
operations are performed in constant time (using the `subtle`

crate and
constant-time formulas). However, it has not been thoroughly assessed to ensure
that generated assembly is constant time on common CPU architectures.

USE AT YOUR OWN RISK!

## Minimum Supported Rust Version

Rust **1.52** or higher.

Minimum supported Rust version may be changed in the future, but it will be accompanied with a minor version bump.

## Re-exports

`pub use elliptic_curve_flow;`

`pub use elliptic_curve_flow::pkcs8;`

## Modules

`ecdh`

Elliptic Curve Diffie-Hellman (Ephemeral) Support.

`ecdsa-core`

Elliptic Curve Digital Signature Algorithm (ECDSA).

## Structs

`arithmetic`

A point on the secp256k1 curve in affine coordinates.

`arithmetic`

A point on the secp256k1 curve in projective coordinates.

`arithmetic`

Scalars are elements in the finite field modulo n.

secp256k1 (K-256) elliptic curve.

## Functions

Calculates `x * k + y * l`

.

## Type Definitions

Compressed SEC1-encoded secp256k1 (K-256) curve point.

SEC1-encoded secp256k1 (K-256) curve point.

secp256k1 (K-256) field element serialized as bytes.

Non-zero secp256k1 (K-256) scalar field element.

secp256k1 (K-256) public key.

secp256k1 (K-256) secret key.

256-bit unsigned big integer