dalek-ed25519-verified/verification/CurveField.llbc

1 line
6.4 MiB
Text
Raw Normal View History

{"charon_version":"0.1.212","translated":{"crate_name":"curve25519_dalek","options":{"ullbc":false,"precise_drops":false,"skip_borrowck":false,"mir":null,"rustc_args":[],"targets":[],"monomorphize":false,"monomorphize_mut":null,"start_from":["crate::field","crate::backend::serial::u64::field","crate::backend::serial::curve_models","crate::edwards","crate::backend::serial::u64::scalar::_::add","crate::backend::serial::u64::scalar::_::sub","crate::backend::serial::u64::scalar::_::mul","crate::backend::serial::u64::scalar::_::square","crate::backend::serial::u64::scalar::_::montgomery_mul","crate::backend::serial::u64::scalar::_::montgomery_square","crate::backend::serial::u64::scalar::_::montgomery_reduce","crate::backend::serial::u64::scalar::_::montgomery_invert","crate::backend::serial::u64::scalar::_::as_montgomery","crate::backend::serial::u64::scalar::_::from_montgomery","crate::backend::serial::u64::scalar::_::from_bytes_wide","crate::scalar::_::from_bytes_mod_order","crate::scalar::_::from_bytes_mod_order_wide"],"start_from_if_exists":[],"start_from_attribute":null,"start_from_pub":false,"include":[],"opaque":["crate::field::_::internal_invert_batch","crate::backend::serial::scalar_mul::variable_base","crate::backend::serial::scalar_mul::straus","crate::backend::serial::scalar_mul::precomputed_straus","crate::backend::serial::scalar_mul::pippenger","crate::backend::vector","crate::backend::get_selected_backend","crate::edwards::_::sum","crate::edwards::_::from_slice"],"exclude":[],"extract_opaque_bodies":false,"translate_all_methods":false,"duplicate_defaulted_methods":true,"lift_associated_types":["*"],"hide_marker_traits":true,"remove_adt_clauses":true,"hide_allocator":true,"remove_unused_self_clauses":true,"desugar_drops":false,"ops_to_function_calls":true,"index_to_function_calls":true,"treat_box_as_builtin":true,"raw_consts":false,"unsized_strings":false,"reconstruct_fallible_operations":true,"reconstruct_asserts":true,"unbind_item_vars":true,"print_original_ullbc":false,"print_ullbc":false,"print_built_llbc":false,"print_llbc":false,"dest_dir":null,"dest_file":"/home/oho/GitClone/Claude/FormalVerification/dalek-ed25519-verified/verification/CurveField.llbc","no_dedup_serialized_ast":false,"format":null,"no_serialize":false,"no_typecheck":false,"no_normalize":false,"abort_on_error":false,"error_on_warnings":false,"preset":"Aeneas"},"target_information":[{"key":"x86_64-unknown-linux-gnu","value":{"target_pointer_size":8,"is_little_endian":true}}],"files":[{"id":0,"name":{"Local":"curve25519-dalek/src/backend/serial/u64/scalar.rs"},"crate_name":"curve25519_dalek","contents":"//! Arithmetic mod \\\\(2\\^{252} + 27742317777372353535851937790883648493\\\\)\n//! with five \\\\(52\\\\)-bit unsigned limbs.\n//!\n//! \\\\(51\\\\)-bit limbs would cover the desired bit range (\\\\(253\\\\)\n//! bits), but isn't large enough to reduce a \\\\(512\\\\)-bit number with\n//! Montgomery multiplication, so \\\\(52\\\\) bits is used instead. To see\n//! that this is safe for intermediate results, note that the largest\n//! limb in a \\\\(5\\times 5\\\\) product of \\\\(52\\\\)-bit limbs will be\n//!\n//! ```text\n//! (0xfffffffffffff^2) * 5 = 0x4ffffffffffff60000000000005 (107 bits).\n//! ```\n\nuse core::fmt::Debug;\nuse core::ops::{Index, IndexMut};\nuse subtle::{Choice, ConditionallySelectable};\n\n#[cfg(feature = \"zeroize\")]\nuse zeroize::Zeroize;\n\nuse crate::constants;\n\n/// The `Scalar52` struct represents an element in\n/// \\\\(\\mathbb Z / \\ell \\mathbb Z\\\\) as 5 \\\\(52\\\\)-bit limbs.\n#[derive(Copy, Clone)]\npub struct Scalar52(pub [u64; 5]);\n\nimpl Debug for Scalar52 {\n fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {\n write!(f, \"Scalar52: {:?}\", &self.0[..])\n }\n}\n\n#[cfg(feature = \"zeroize\")]\nimpl Zeroize for Scalar52 {\n fn zeroize(&mut self) {\n self.0.zeroize();\n }\n}\n\nimpl Index<usize> for Scalar52 {\n type Output = u64;\n fn index(&self, _index: usize) -> &u64 {\n &(self.0[_index])\n }\n}\n\nimpl IndexMut<usize> for Scalar5