28 lines
719 B
Rust
28 lines
719 B
Rust
//! Projective arithmetic tests.
|
|
|
|
#![cfg(all(feature = "arithmetic", feature = "test-vectors"))]
|
|
|
|
use elliptic_curve::{
|
|
group::{ff::PrimeField, GroupEncoding},
|
|
sec1::{self, ToEncodedPoint},
|
|
};
|
|
use p256::{
|
|
test_vectors::group::{ADD_TEST_VECTORS, MUL_TEST_VECTORS},
|
|
AffinePoint, ProjectivePoint, Scalar,
|
|
};
|
|
use primeorder::{impl_projective_arithmetic_tests, Double};
|
|
|
|
impl_projective_arithmetic_tests!(
|
|
AffinePoint,
|
|
ProjectivePoint,
|
|
Scalar,
|
|
ADD_TEST_VECTORS,
|
|
MUL_TEST_VECTORS
|
|
);
|
|
|
|
#[test]
|
|
fn projective_identity_to_bytes() {
|
|
// This is technically an invalid SEC1 encoding, but is preferable to panicking.
|
|
assert_eq!([0; 33], ProjectivePoint::IDENTITY.to_bytes().as_slice());
|
|
}
|