mirror of
https://github.com/saymrwulf/dalek-ed25519-verified.git
synced 2026-09-06 20:41:15 +00:00
Phase 2, brick 3 opened: decompress extracted for real (gen green)
extract.sh drops --opaque crate::edwards::decompress: step_1/step_2, sqrt_ratio_i, pow_p58, and FieldElement51::from_bytes now extract as real code (source aa0f6ab patches step_2's conditional_negate to the documented negate-then-conditional-assign - the ConditionallyNegatable blanket impl is the one thing the toolchain cannot translate). No new axioms: the slice-level ct_eq the sqrt check needs was already a real def. Full button green on the regenerated universe. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
fe021b9486
commit
a2803fe34e
8 changed files with 1001 additions and 972 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -54,7 +54,6 @@ charon cargo --preset=aeneas \
|
||||||
--opaque 'crate::backend::serial::scalar_mul::pippenger' \
|
--opaque 'crate::backend::serial::scalar_mul::pippenger' \
|
||||||
--opaque 'crate::backend::vector' \
|
--opaque 'crate::backend::vector' \
|
||||||
--opaque 'crate::backend::get_selected_backend' \
|
--opaque 'crate::backend::get_selected_backend' \
|
||||||
--opaque 'crate::edwards::decompress' \
|
|
||||||
--opaque 'crate::edwards::_::sum' \
|
--opaque 'crate::edwards::_::sum' \
|
||||||
--opaque 'crate::edwards::_::from_slice' \
|
--opaque 'crate::edwards::_::from_slice' \
|
||||||
--dest-file "$HERE/CurveField.llbc" \
|
--dest-file "$HERE/CurveField.llbc" \
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -315,30 +315,13 @@ axiom edwards.affine.AffinePoint.Insts.CoreCmpEq.assert_fields_are_eq
|
||||||
: edwards.affine.AffinePoint → Result Unit
|
: edwards.affine.AffinePoint → Result Unit
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{impl core::cmp::Eq for curve25519_dalek::edwards::CompressedEdwardsY}::assert_fields_are_eq]:
|
/-- [curve25519_dalek::edwards::{impl core::cmp::Eq for curve25519_dalek::edwards::CompressedEdwardsY}::assert_fields_are_eq]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 183:0-183:33
|
Source: 'curve25519-dalek/src/edwards.rs', lines 182:0-182:33
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
axiom edwards.CompressedEdwardsY.Insts.CoreCmpEq.assert_fields_are_eq
|
axiom edwards.CompressedEdwardsY.Insts.CoreCmpEq.assert_fields_are_eq
|
||||||
: edwards.CompressedEdwardsY → Result Unit
|
: edwards.CompressedEdwardsY → Result Unit
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::decompress::step_2]:
|
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 240:4-257:5 -/
|
|
||||||
axiom edwards.decompress.step_2
|
|
||||||
:
|
|
||||||
edwards.CompressedEdwardsY → backend.serial.u64.field.FieldElement51 →
|
|
||||||
backend.serial.u64.field.FieldElement51 →
|
|
||||||
backend.serial.u64.field.FieldElement51 → Result edwards.EdwardsPoint
|
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::decompress::step_1]:
|
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 226:4-237:5 -/
|
|
||||||
axiom edwards.decompress.step_1
|
|
||||||
:
|
|
||||||
edwards.CompressedEdwardsY → Result (subtle.Choice ×
|
|
||||||
backend.serial.u64.field.FieldElement51 ×
|
|
||||||
backend.serial.u64.field.FieldElement51 ×
|
|
||||||
backend.serial.u64.field.FieldElement51)
|
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::CompressedEdwardsY}::from_slice]:
|
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::CompressedEdwardsY}::from_slice]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 423:4-425:5
|
Source: 'curve25519-dalek/src/edwards.rs', lines 428:4-430:5
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
axiom edwards.CompressedEdwardsY.from_slice
|
axiom edwards.CompressedEdwardsY.from_slice
|
||||||
:
|
:
|
||||||
|
|
@ -346,7 +329,7 @@ axiom edwards.CompressedEdwardsY.from_slice
|
||||||
core.array.TryFromSliceError)
|
core.array.TryFromSliceError)
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{impl subtle::ConditionallySelectable for curve25519_dalek::edwards::EdwardsPoint}::conditional_swap]:
|
/-- [curve25519_dalek::edwards::{impl subtle::ConditionallySelectable for curve25519_dalek::edwards::EdwardsPoint}::conditional_swap]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 486:0-495:1
|
Source: 'curve25519-dalek/src/edwards.rs', lines 491:0-500:1
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
axiom edwards.EdwardsPoint.Insts.SubtleConditionallySelectable.conditional_swap
|
axiom edwards.EdwardsPoint.Insts.SubtleConditionallySelectable.conditional_swap
|
||||||
:
|
:
|
||||||
|
|
@ -354,7 +337,7 @@ axiom edwards.EdwardsPoint.Insts.SubtleConditionallySelectable.conditional_swap
|
||||||
(edwards.EdwardsPoint × edwards.EdwardsPoint)
|
(edwards.EdwardsPoint × edwards.EdwardsPoint)
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{impl subtle::ConditionallySelectable for curve25519_dalek::edwards::EdwardsPoint}::conditional_assign]:
|
/-- [curve25519_dalek::edwards::{impl subtle::ConditionallySelectable for curve25519_dalek::edwards::EdwardsPoint}::conditional_assign]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 486:0-495:1
|
Source: 'curve25519-dalek/src/edwards.rs', lines 491:0-500:1
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
axiom
|
axiom
|
||||||
edwards.EdwardsPoint.Insts.SubtleConditionallySelectable.conditional_assign
|
edwards.EdwardsPoint.Insts.SubtleConditionallySelectable.conditional_assign
|
||||||
|
|
@ -363,7 +346,7 @@ axiom
|
||||||
edwards.EdwardsPoint
|
edwards.EdwardsPoint
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{impl core::cmp::Eq for curve25519_dalek::edwards::EdwardsPoint}::assert_fields_are_eq]:
|
/-- [curve25519_dalek::edwards::{impl core::cmp::Eq for curve25519_dalek::edwards::EdwardsPoint}::assert_fields_are_eq]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 520:0-520:27
|
Source: 'curve25519-dalek/src/edwards.rs', lines 525:0-525:27
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
axiom edwards.EdwardsPoint.Insts.CoreCmpEq.assert_fields_are_eq
|
axiom edwards.EdwardsPoint.Insts.CoreCmpEq.assert_fields_are_eq
|
||||||
: edwards.EdwardsPoint → Result Unit
|
: edwards.EdwardsPoint → Result Unit
|
||||||
|
|
@ -378,7 +361,7 @@ axiom field.FieldElement51.internal_invert_batch
|
||||||
backend.serial.u64.field.FieldElement51))
|
backend.serial.u64.field.FieldElement51))
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{impl core::iter::traits::accum::Sum<T> for curve25519_dalek::edwards::EdwardsPoint}::sum]:
|
/-- [curve25519_dalek::edwards::{impl core::iter::traits::accum::Sum<T> for curve25519_dalek::edwards::EdwardsPoint}::sum]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 841:4-846:5
|
Source: 'curve25519-dalek/src/edwards.rs', lines 846:4-851:5
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
axiom edwards.EdwardsPoint.Insts.CoreIterTraitsAccumSum.sum
|
axiom edwards.EdwardsPoint.Insts.CoreIterTraitsAccumSum.sum
|
||||||
{T : Type} {I : Type} (coreborrowBorrowTEdwardsPointInst : core.borrow.Borrow
|
{T : Type} {I : Type} (coreborrowBorrowTEdwardsPointInst : core.borrow.Borrow
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,7 @@ structure traits.ValidityCheck (Self : Type) where
|
||||||
is_valid : Self → Result Bool
|
is_valid : Self → Result Bool
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::EdwardsPoint]
|
/-- [curve25519_dalek::edwards::EdwardsPoint]
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 390:0-395:1
|
Source: 'curve25519-dalek/src/edwards.rs', lines 395:0-400:1
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
structure edwards.EdwardsPoint where
|
structure edwards.EdwardsPoint where
|
||||||
X : backend.serial.u64.field.FieldElement51
|
X : backend.serial.u64.field.FieldElement51
|
||||||
|
|
@ -200,7 +200,7 @@ structure edwards.affine.AffinePoint where
|
||||||
y : backend.serial.u64.field.FieldElement51
|
y : backend.serial.u64.field.FieldElement51
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::CompressedEdwardsY]
|
/-- [curve25519_dalek::edwards::CompressedEdwardsY]
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 175:0-175:44
|
Source: 'curve25519-dalek/src/edwards.rs', lines 174:0-174:44
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
@[reducible]
|
@[reducible]
|
||||||
def edwards.CompressedEdwardsY := Array Std.U8 32#usize
|
def edwards.CompressedEdwardsY := Array Std.U8 32#usize
|
||||||
|
|
@ -212,13 +212,13 @@ def edwards.CompressedEdwardsY := Array Std.U8 32#usize
|
||||||
def montgomery.MontgomeryPoint := Array Std.U8 32#usize
|
def montgomery.MontgomeryPoint := Array Std.U8 32#usize
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::compress_batch::closure#1]
|
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::compress_batch::closure#1]
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 625:29-629:9 -/
|
Source: 'curve25519-dalek/src/edwards.rs', lines 630:29-634:9 -/
|
||||||
def edwards.EdwardsPoint.compress_batch.closure_1 (N : Std.Usize) :=
|
def edwards.EdwardsPoint.compress_batch.closure_1 (N : Std.Usize) :=
|
||||||
Array edwards.EdwardsPoint N × Array backend.serial.u64.field.FieldElement51
|
Array edwards.EdwardsPoint N × Array backend.serial.u64.field.FieldElement51
|
||||||
N
|
N
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::compress_batch::closure]
|
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::compress_batch::closure]
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 622:50-622:65 -/
|
Source: 'curve25519-dalek/src/edwards.rs', lines 627:50-627:65 -/
|
||||||
@[reducible]
|
@[reducible]
|
||||||
def edwards.EdwardsPoint.compress_batch.closure (N : Std.Usize) :=
|
def edwards.EdwardsPoint.compress_batch.closure (N : Std.Usize) :=
|
||||||
Array edwards.EdwardsPoint N
|
Array edwards.EdwardsPoint N
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ axiom
|
||||||
F)
|
F)
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::CompressedEdwardsY}::as_bytes]:
|
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::CompressedEdwardsY}::as_bytes]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 198:4-198:45
|
Source: 'curve25519-dalek/src/edwards.rs', lines 197:4-197:45
|
||||||
Name pattern: [curve25519_dalek::edwards::{curve25519_dalek::edwards::CompressedEdwardsY}::as_bytes]
|
Name pattern: [curve25519_dalek::edwards::{curve25519_dalek::edwards::CompressedEdwardsY}::as_bytes]
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
@[rust_fun
|
@[rust_fun
|
||||||
|
|
@ -50,7 +50,7 @@ axiom curve25519_dalek.edwards.CompressedEdwardsY.as_bytes
|
||||||
32#usize)
|
32#usize)
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::compress]:
|
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::compress]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 615:4-615:48
|
Source: 'curve25519-dalek/src/edwards.rs', lines 620:4-620:48
|
||||||
Name pattern: [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::compress]
|
Name pattern: [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::compress]
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
@[rust_fun
|
@[rust_fun
|
||||||
|
|
@ -61,7 +61,7 @@ axiom curve25519_dalek.edwards.EdwardsPoint.compress
|
||||||
curve25519_dalek.edwards.CompressedEdwardsY
|
curve25519_dalek.edwards.CompressedEdwardsY
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{impl core::ops::arith::Neg<curve25519_dalek::edwards::EdwardsPoint> for curve25519_dalek::edwards::EdwardsPoint}::neg]:
|
/-- [curve25519_dalek::edwards::{impl core::ops::arith::Neg<curve25519_dalek::edwards::EdwardsPoint> for curve25519_dalek::edwards::EdwardsPoint}::neg]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 869:4-869:32
|
Source: 'curve25519-dalek/src/edwards.rs', lines 874:4-874:32
|
||||||
Name pattern: [curve25519_dalek::edwards::{core::ops::arith::Neg<curve25519_dalek::edwards::EdwardsPoint, curve25519_dalek::edwards::EdwardsPoint>}::neg]
|
Name pattern: [curve25519_dalek::edwards::{core::ops::arith::Neg<curve25519_dalek::edwards::EdwardsPoint, curve25519_dalek::edwards::EdwardsPoint>}::neg]
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
@[rust_fun
|
@[rust_fun
|
||||||
|
|
@ -73,7 +73,7 @@ axiom
|
||||||
curve25519_dalek.edwards.EdwardsPoint
|
curve25519_dalek.edwards.EdwardsPoint
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::vartime_double_scalar_mul_basepoint]:
|
/-- [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::vartime_double_scalar_mul_basepoint]:
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 1080:4-1084:21
|
Source: 'curve25519-dalek/src/edwards.rs', lines 1085:4-1089:21
|
||||||
Name pattern: [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::vartime_double_scalar_mul_basepoint]
|
Name pattern: [curve25519_dalek::edwards::{curve25519_dalek::edwards::EdwardsPoint}::vartime_double_scalar_mul_basepoint]
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
@[rust_fun
|
@[rust_fun
|
||||||
|
|
|
||||||
|
|
@ -14,14 +14,14 @@ set_option maxHeartbeats 1000000
|
||||||
set_option maxRecDepth 2048
|
set_option maxRecDepth 2048
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::CompressedEdwardsY]
|
/-- [curve25519_dalek::edwards::CompressedEdwardsY]
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 175:0-175:29
|
Source: 'curve25519-dalek/src/edwards.rs', lines 174:0-174:29
|
||||||
Name pattern: [curve25519_dalek::edwards::CompressedEdwardsY]
|
Name pattern: [curve25519_dalek::edwards::CompressedEdwardsY]
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
@[rust_type "curve25519_dalek::edwards::CompressedEdwardsY"]
|
@[rust_type "curve25519_dalek::edwards::CompressedEdwardsY"]
|
||||||
axiom curve25519_dalek.edwards.CompressedEdwardsY : Type
|
axiom curve25519_dalek.edwards.CompressedEdwardsY : Type
|
||||||
|
|
||||||
/-- [curve25519_dalek::edwards::EdwardsPoint]
|
/-- [curve25519_dalek::edwards::EdwardsPoint]
|
||||||
Source: 'curve25519-dalek/src/edwards.rs', lines 390:0-390:23
|
Source: 'curve25519-dalek/src/edwards.rs', lines 395:0-395:23
|
||||||
Name pattern: [curve25519_dalek::edwards::EdwardsPoint]
|
Name pattern: [curve25519_dalek::edwards::EdwardsPoint]
|
||||||
Visibility: public -/
|
Visibility: public -/
|
||||||
@[rust_type "curve25519_dalek::edwards::EdwardsPoint"]
|
@[rust_type "curve25519_dalek::edwards::EdwardsPoint"]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue