/rust/registry/src/index.crates.io-6f17d22bba15001f/ring-0.17.14/src/arithmetic/inout.rs
Line | Count | Source (jump to first uncovered line) |
1 | | // Copyright 2025 Brian Smith. |
2 | | // |
3 | | // Permission to use, copy, modify, and/or distribute this software for any |
4 | | // purpose with or without fee is hereby granted, provided that the above |
5 | | // copyright notice and this permission notice appear in all copies. |
6 | | // |
7 | | // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
8 | | // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
9 | | // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY |
10 | | // SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
11 | | // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION |
12 | | // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN |
13 | | // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
14 | | |
15 | | pub(crate) use crate::error::LenMismatchError; |
16 | | use core::num::NonZeroUsize; |
17 | | |
18 | | pub(crate) trait AliasingSlices2<T> { |
19 | | /// The pointers passed to `f` will be valid and non-null, and will not |
20 | | /// be dangling, so they can be passed to C functions. |
21 | | /// |
22 | | /// The first pointer, `r`, may be pointing to uninitialized memory for |
23 | | /// `expected_len` elements of type `T`, properly aligned and writable. |
24 | | /// `f` must not read from `r` before writing to it. |
25 | | /// |
26 | | /// The second & third pointers, `a` and `b`, point to `expected_len` |
27 | | /// values of type `T`, properly aligned. |
28 | | /// |
29 | | /// `r`, `a`, and/or `b` may alias each other only in the following ways: |
30 | | /// `ptr::eq(r, a)`, `ptr::eq(r, b)`, and/or `ptr::eq(a, b)`; i.e. they |
31 | | /// will not be "overlapping." |
32 | | /// |
33 | | /// Implementations of this trait shouldn't override this default |
34 | | /// implementation. |
35 | | #[inline(always)] |
36 | 0 | fn with_non_dangling_non_null_pointers_ra<R>( |
37 | 0 | self, |
38 | 0 | expected_len: NonZeroUsize, |
39 | 0 | f: impl FnOnce(*mut T, *const T) -> R, |
40 | 0 | ) -> Result<R, LenMismatchError> |
41 | 0 | where |
42 | 0 | Self: Sized, |
43 | 0 | { |
44 | 0 | self.with_potentially_dangling_non_null_pointers_ra(expected_len.get(), f) |
45 | 0 | } Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_non_dangling_non_null_pointers_ra::<(), ring::limb::limbs_double_mod::{closure#1}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_non_dangling_non_null_pointers_ra::<(), ring::arithmetic::limbs::x86_64::mont::sqr_mont5::{closure#1}> |
46 | | |
47 | | /// If `expected_len == 0` then the pointers passed to `f` may be |
48 | | /// dangling pointers, which should not be passed to C functions. In all |
49 | | /// other respects, this works like |
50 | | /// `Self::with_non_dangling_non_null_pointers_rab`. |
51 | | /// |
52 | | /// Implementations of this trait should implement this method and not |
53 | | /// `with_non_dangling_non_null_pointers_rab`. Users of this trait should |
54 | | /// use `with_non_dangling_non_null_pointers_rab` and not this. |
55 | | fn with_potentially_dangling_non_null_pointers_ra<R>( |
56 | | self, |
57 | | expected_len: usize, |
58 | | f: impl FnOnce(*mut T, *const T) -> R, |
59 | | ) -> Result<R, LenMismatchError>; |
60 | | } |
61 | | |
62 | | impl<T> AliasingSlices2<T> for &mut [T] { |
63 | 0 | fn with_potentially_dangling_non_null_pointers_ra<R>( |
64 | 0 | self, |
65 | 0 | expected_len: usize, |
66 | 0 | f: impl FnOnce(*mut T, *const T) -> R, |
67 | 0 | ) -> Result<R, LenMismatchError> { |
68 | 0 | let r = self; |
69 | 0 | if r.len() != expected_len { |
70 | 0 | return Err(LenMismatchError::new(r.len())); |
71 | 0 | } |
72 | 0 | Ok(f(r.as_mut_ptr(), r.as_ptr())) |
73 | 0 | } Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, &mut [u64]>::{closure#1}>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, &mut [u64]>::{closure#1}>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, &mut [u64]>::{closure#1}>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64])>::{closure#1}>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64])>::{closure#1}>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64])>::{closure#1}>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::bigint::elem_sub<ring::rsa::keypair::P, ring::arithmetic::montgomery::Unencoded>::{closure#0}>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::limb::limbs_add_assign_mod::{closure#1}>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), ring::limb::limbs_double_mod::{closure#1}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), ring::arithmetic::limbs::x86_64::mont::sqr_mont5::{closure#1}> |
74 | | } |
75 | | |
76 | | impl<T> AliasingSlices2<T> for (&mut [T], &[T]) { |
77 | 0 | fn with_potentially_dangling_non_null_pointers_ra<R>( |
78 | 0 | self, |
79 | 0 | expected_len: usize, |
80 | 0 | f: impl FnOnce(*mut T, *const T) -> R, |
81 | 0 | ) -> Result<R, LenMismatchError> { |
82 | 0 | let (r, a) = self; |
83 | 0 | if r.len() != expected_len { |
84 | 0 | return Err(LenMismatchError::new(r.len())); |
85 | 0 | } |
86 | 0 | if a.len() != expected_len { |
87 | 0 | return Err(LenMismatchError::new(a.len())); |
88 | 0 | } |
89 | 0 | Ok(f(r.as_mut_ptr(), a.as_ptr())) |
90 | 0 | } Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}>::{closure#0}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64], &[u64])>::{closure#1}>::{closure#0}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices2<u64>>::with_potentially_dangling_non_null_pointers_ra::<(), <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}>::{closure#0}> |
91 | | } |
92 | | |
93 | | pub(crate) trait AliasingSlices3<T> { |
94 | | /// The pointers passed to `f` will all be non-null and properly aligned, |
95 | | /// and will not be dangling. |
96 | | /// |
97 | | /// The first pointer, `r` points to potentially-uninitialized writable |
98 | | /// space for `expected_len` elements of type `T`. Accordingly, `f` must |
99 | | /// not read from `r` before writing to it. |
100 | | /// |
101 | | /// The second & third pointers, `a` and `b`, point to `expected_len` |
102 | | /// initialized values of type `T`. |
103 | | /// |
104 | | /// `r`, `a`, and/or `b` may alias each other, but only in the following |
105 | | /// ways: `ptr::eq(r, a)`, `ptr::eq(r, b)`, and/or `ptr::eq(a, b)`; they |
106 | | /// will not be "overlapping." |
107 | | /// |
108 | | /// Implementations of this trait shouldn't override this default |
109 | | /// implementation. |
110 | | #[inline(always)] |
111 | 0 | fn with_non_dangling_non_null_pointers_rab<R>( |
112 | 0 | self, |
113 | 0 | expected_len: NonZeroUsize, |
114 | 0 | f: impl FnOnce(*mut T, *const T, *const T) -> R, |
115 | 0 | ) -> Result<R, LenMismatchError> |
116 | 0 | where |
117 | 0 | Self: Sized, |
118 | 0 | { |
119 | 0 | self.with_potentially_dangling_non_null_pointers_rab(expected_len.get(), f) |
120 | 0 | } Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::bigint::elem_sub<ring::rsa::keypair::P, ring::arithmetic::montgomery::Unencoded>::{closure#0}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, &mut [u64]>::{closure#1}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, &mut [u64]>::{closure#1}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, &mut [u64]>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_non_dangling_non_null_pointers_rab::<(), ring::limb::limbs_add_assign_mod::{closure#1}> |
121 | | |
122 | | /// If `expected_len == 0` then the pointers passed to `f` may be |
123 | | /// dangling pointers, which should not be passed to C functions. In all |
124 | | /// other respects, this works like |
125 | | /// `Self::with_non_dangling_non_null_pointers_rab`. |
126 | | /// |
127 | | /// Implementations of this trait should implement this method and not |
128 | | /// `with_non_dangling_non_null_pointers_rab`. Users of this trait should |
129 | | /// use `with_non_dangling_non_null_pointers_rab` and not this. |
130 | | fn with_potentially_dangling_non_null_pointers_rab<R>( |
131 | | self, |
132 | | expected_len: usize, |
133 | | f: impl FnOnce(*mut T, *const T, *const T) -> R, |
134 | | ) -> Result<R, LenMismatchError>; |
135 | | } |
136 | | |
137 | | impl<T> AliasingSlices3<T> for &mut [T] { |
138 | 0 | fn with_potentially_dangling_non_null_pointers_rab<R>( |
139 | 0 | self, |
140 | 0 | expected_len: usize, |
141 | 0 | f: impl FnOnce(*mut T, *const T, *const T) -> R, |
142 | 0 | ) -> Result<R, LenMismatchError> { |
143 | 0 | <Self as AliasingSlices2<T>>::with_potentially_dangling_non_null_pointers_ra( |
144 | 0 | self, |
145 | 0 | expected_len, |
146 | 0 | |r, a| f(r, r, a), Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, &mut [u64]>::{closure#1}>::{closure#0} Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, &mut [u64]>::{closure#1}>::{closure#0} Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, &mut [u64]>::{closure#1}>::{closure#0} |
147 | 0 | ) |
148 | 0 | } Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, &mut [u64]>::{closure#1}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, &mut [u64]>::{closure#1}> Unexecuted instantiation: <&mut [u64] as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, &mut [u64]>::{closure#1}> |
149 | | } |
150 | | |
151 | | impl<T> AliasingSlices3<T> for (&mut [T], &[T], &[T]) { |
152 | 0 | fn with_potentially_dangling_non_null_pointers_rab<R>( |
153 | 0 | self, |
154 | 0 | expected_len: usize, |
155 | 0 | f: impl FnOnce(*mut T, *const T, *const T) -> R, |
156 | 0 | ) -> Result<R, LenMismatchError> { |
157 | 0 | let (r, a, b) = self; |
158 | 0 | ((r, a), b).with_potentially_dangling_non_null_pointers_rab(expected_len, f) |
159 | 0 | } Unexecuted instantiation: <(&mut [u64], &[u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}> |
160 | | } |
161 | | |
162 | | impl<RA, T> AliasingSlices3<T> for (RA, &[T]) |
163 | | where |
164 | | RA: AliasingSlices2<T>, |
165 | | { |
166 | 0 | fn with_potentially_dangling_non_null_pointers_rab<R>( |
167 | 0 | self, |
168 | 0 | expected_len: usize, |
169 | 0 | f: impl FnOnce(*mut T, *const T, *const T) -> R, |
170 | 0 | ) -> Result<R, LenMismatchError> { |
171 | 0 | let (ra, b) = self; |
172 | 0 | if b.len() != expected_len { |
173 | 0 | return Err(LenMismatchError::new(b.len())); |
174 | 0 | } |
175 | 0 | ra.with_potentially_dangling_non_null_pointers_ra(expected_len, |r, a| f(r, a, b.as_ptr())) Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64])>::{closure#1}>::{closure#0} Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64])>::{closure#1}>::{closure#0} Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64])>::{closure#1}>::{closure#0} Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::bigint::elem_sub<ring::rsa::keypair::P, ring::arithmetic::montgomery::Unencoded>::{closure#0}>::{closure#0} Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::limb::limbs_add_assign_mod::{closure#1}>::{closure#0} Unexecuted instantiation: <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}>::{closure#0} Unexecuted instantiation: <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64], &[u64])>::{closure#1}>::{closure#0} Unexecuted instantiation: <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}>::{closure#0} |
176 | 0 | } Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64])>::{closure#1}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::bigint::elem_sub<ring::rsa::keypair::P, ring::arithmetic::montgomery::Unencoded>::{closure#0}> Unexecuted instantiation: <(&mut [u64], &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::limb::limbs_add_assign_mod::{closure#1}> Unexecuted instantiation: <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(ring::cpu::intel::Adx, ring::cpu::intel::Bmi2), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}> Unexecuted instantiation: <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 4, 1, (&mut [u64], &[u64], &[u64])>::{closure#1}> Unexecuted instantiation: <((&mut [u64], &[u64]), &[u64]) as ring::arithmetic::inout::AliasingSlices3<u64>>::with_potentially_dangling_non_null_pointers_rab::<(), ring::arithmetic::ffi::bn_mul_mont_ffi<(), 8, 4, (&mut [u64], &[u64], &[u64])>::{closure#1}> |
177 | | } |