guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

28/127: gnu: Add rust-ring-0.17.


From: guix-commits
Subject: 28/127: gnu: Add rust-ring-0.17.
Date: Tue, 26 Dec 2023 06:42:33 -0500 (EST)

efraim pushed a commit to branch rust-team
in repository guix.

commit dd4f1e240d9d670dc0439c2287c0fc27a937fd2b
Author: Efraim Flashner <efraim@flashner.co.il>
AuthorDate: Sun Dec 24 10:03:49 2023 +0200

    gnu: Add rust-ring-0.17.
    
    * gnu/packages/crates-io.scm (rust-ring-0.17, rust-ring-0.17-sources):
    New variables.
    (rust-ring-0.16): Inherit from rust-ring-0.17.
    
    Change-Id: Ic71f17e7d9c21f75a449ceededf8725870c2395b
---
 gnu/local.mk                                       |   1 +
 gnu/packages/crates-io.scm                         | 220 ++++++++-
 .../patches/rust-ring-0.17-ring-core.patch         | 496 +++++++++++++++++++++
 3 files changed, 711 insertions(+), 6 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index caf2bb16fa..900e3b8189 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1970,6 +1970,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/rust-1.70-fix-rustix-build.patch        \
   %D%/packages/patches/rust-ring-0.16-missing-files.patch      \
   %D%/packages/patches/rust-ring-0.16-test-files.patch         \
+  %D%/packages/patches/rust-ring-0.17-ring-core.patch          \
   %D%/packages/patches/i3status-rust-enable-unstable-features.patch    \
   %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch  \
   %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index ca43979359..f0426c742d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -61,9 +61,11 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages c)
   #:use-module (gnu packages cmake)
@@ -78,6 +80,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages jemalloc)
@@ -63920,8 +63923,218 @@ Usage of the @dfn{Digital Signature Algorithm} (DSA) 
and @dfn{Elliptic Curve
 Digital Signature Algorithm} (ECDSA).")
     (license (list license:asl2.0 license:expat))))
 
+(define computed-origin-method (@@ (guix packages) computed-origin-method))
+(define rust-ring-0.17-sources
+  (let* ((version "0.17.7")
+         (upstream-source
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/briansmith/ring";)
+                    (commit "2be687bebdf76648ce85109d40c015412e14b0da")))
+             (file-name (git-file-name "rust-ring" version))
+             (sha256
+              (base32 "1i3b7sha8yj990v2s5yk2a5dx3v4x9b8ckzm6bgiyi6wk4vnid69"))
+             (patches (search-patches "rust-ring-0.17-ring-core.patch")))))
+    (origin
+      (method computed-origin-method)
+      (file-name (string-append "rust-ring-" version ".tar.gz"))
+      (sha256 #f)
+      (uri
+        (delay
+          (with-imported-modules '((guix build utils))
+            #~(begin
+                (use-modules (guix build utils))
+                (set-path-environment-variable
+                  "PATH" '("bin")
+                  (list #+(canonical-package gzip)
+                        #+(canonical-package tar)
+                        #+perl
+                        #+nasm
+                        #+go
+                        #+clang             ; clang-format
+                        #+python-minimal))
+                (setenv "HOME" (getcwd))
+                (copy-recursively #+upstream-source
+                                  (string-append "ring-" #$version))
+                (with-directory-excursion (string-append "ring-" #$version)
+                  (begin
+                    ;; It turns out Guix's nasm works just fine here.
+                    (substitute* "build.rs"
+                      (("./target/tools/windows/nasm/nasm") "nasm"))
+                    ;; Files which would be deleted in a snippet:
+                    (delete-file "crypto/curve25519/curve25519_tables.h")
+                    (delete-file "crypto/fipsmodule/ec/p256-nistz-table.h")
+                    (delete-file "crypto/fipsmodule/ec/p256_table.h")
+                    ;; This file causes problems during the 'package phase and
+                    ;; is not distributed with the packaged crate.
+                    (substitute* "Cargo.toml"
+                      (("\"bench\",") ""))
+                    (delete-file "bench/Cargo.toml")
+                    ;; Files to be generated in the sources:
+                    (format #t "Generating the missing files ...~%")
+                    (force-output)
+                    (with-directory-excursion "crypto/curve25519"
+                      (with-output-to-file "curve25519_tables.h"
+                        (lambda _ (invoke "python3" 
"make_curve25519_tables.py")))
+                      ;; As seen in git between 0.17.0 and 0.17.1.
+                      (substitute* "curve25519_tables.h"
+                        (("static const uint8_t k25519Precomp")
+                         "const uint8_t k25519Precomp")))
+                    (with-directory-excursion "crypto/fipsmodule/ec"
+                      (invoke "go" "run" "make_tables.go")
+                      (invoke "go" "run" "make_ec_scalar_base_mult_tests.go"))
+                    (format #t "Generating the pregenerated files ...~%")
+                    (force-output)
+                    (mkdir-p "pregenerated/tmp/ring_core_generated")
+
+                    ;; We generate all the files which upstream would normally 
be
+                    ;; generate by using 'RING_PREGENERATE_ASM=1 cargo build
+                    ;; --target-dir=target/pregenerate_asm' in order to not 
include
+                    ;; a dependency on cargo when generating the sources.
+                    (define (prefix script)
+                      (string-append
+                        "pregenerated/"
+                        (string-drop-right
+                          (string-drop script
+                                       (string-index-right script #\/)) 3)))
+
+                    (for-each
+                      (lambda (script)
+                        (invoke "perl" script "ios64"
+                                (string-append (prefix script) "-ios64.S"))
+                        (invoke "perl" script "linux64"
+                                (string-append (prefix script) "-linux64.S"))
+                        (invoke "perl" script "win64"
+                                (string-append (prefix script) "-win64.S")))
+                      '("crypto/fipsmodule/aes/asm/aesv8-armx.pl"
+                        "crypto/fipsmodule/modes/asm/ghashv8-armx.pl"
+                        "crypto/chacha/asm/chacha-armv8.pl"
+                        "crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl"
+                        "crypto/fipsmodule/aes/asm/vpaes-armv8.pl"
+                        "crypto/fipsmodule/bn/asm/armv8-mont.pl"
+                        "crypto/fipsmodule/ec/asm/p256-armv8-asm.pl"
+                        "crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl"
+                        "crypto/fipsmodule/sha/asm/sha512-armv8.pl"))
+
+                    (for-each
+                      (lambda (arch)
+                        (invoke "perl" 
"crypto/fipsmodule/sha/asm/sha512-armv8.pl"
+                                arch (string-append
+                                       "pregenerated/sha256-armv8-" arch 
".S")))
+                      '("ios64" "linux64" "win64"))
+
+                    (for-each
+                      (lambda (script)
+                        (invoke "perl" script "linux32"
+                                (string-append (prefix script) "-linux32.S")))
+                      '("crypto/fipsmodule/aes/asm/aesv8-armx.pl"
+                        "crypto/fipsmodule/modes/asm/ghashv8-armx.pl"
+                        "crypto/fipsmodule/aes/asm/bsaes-armv7.pl"
+                        "crypto/fipsmodule/aes/asm/vpaes-armv7.pl"
+                        "crypto/fipsmodule/bn/asm/armv4-mont.pl"
+                        "crypto/chacha/asm/chacha-armv4.pl"
+                        "crypto/fipsmodule/modes/asm/ghash-armv4.pl"
+                        "crypto/fipsmodule/sha/asm/sha256-armv4.pl"
+                        "crypto/fipsmodule/sha/asm/sha512-armv4.pl"))
+
+                    (for-each
+                      (lambda (script)
+                        (invoke "perl" script "elf"
+                                "-fPIC" "-DOPENSSL_IA32_SSE2"
+                                (string-append (prefix script) "-elf.S"))
+                        (invoke "perl" script "win32n"
+                                "-fPIC" "-DOPENSSL_IA32_SSE2"
+                                (string-append
+                                  "pregenerated/tmp/"
+                                  (string-drop (prefix script) 13) 
"-win32n.asm")))
+                      '("crypto/fipsmodule/aes/asm/aesni-x86.pl"
+                        "crypto/fipsmodule/aes/asm/vpaes-x86.pl"
+                        "crypto/fipsmodule/bn/asm/x86-mont.pl"
+                        "crypto/chacha/asm/chacha-x86.pl"
+                        "crypto/fipsmodule/modes/asm/ghash-x86.pl"))
+
+                    (for-each
+                      (lambda (script)
+                        (invoke "perl" script "elf"
+                                (string-append (prefix script) "-elf.S"))
+                        (invoke "perl" script "macosx"
+                                (string-append (prefix script) "-macosx.S"))
+                        (invoke "perl" script "nasm"
+                                (string-append
+                                  "pregenerated/tmp/"
+                                  (string-drop (prefix script) 13) 
"-nasm.asm")))
+                      '("crypto/chacha/asm/chacha-x86_64.pl"
+                        "crypto/fipsmodule/aes/asm/aesni-x86_64.pl"
+                        "crypto/fipsmodule/aes/asm/vpaes-x86_64.pl"
+                        "crypto/fipsmodule/bn/asm/x86_64-mont.pl"
+                        "crypto/fipsmodule/bn/asm/x86_64-mont5.pl"
+                        "crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl"
+                        "crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl"
+                        "crypto/fipsmodule/modes/asm/ghash-x86_64.pl"
+                        "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
+                        "crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl"))
+
+                    (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
+                            "elf" "pregenerated/sha256-x86_64-elf.S")
+
+                    (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
+                            "macosx" "pregenerated/sha256-x86_64-macosx.S")
+
+                    (invoke "perl" "crypto/fipsmodule/sha/asm/sha512-x86_64.pl"
+                            "nasm" "pregenerated/tmp/sha256-x86_64-nasm.asm")
+
+                    ;; TODO: Extract 
ring_core_generated/prefix_symbols_nasm.inc
+                    ;; and ring_core_generated/prefix_symbols_asm.h from 
build.rs.
+
+                    (for-each
+                      (lambda (script)
+                        (invoke "nasm" "-o" (string-append (prefix script) "o")
+                                "-f" "win32" "-i" "include/" "-i" 
"pregenerated/tmp/"
+                                "-Xgnu" "-gcv8" script))
+                    (find-files "pregenerated/tmp" "win32n\\.asm"))
+
+                    (for-each
+                      (lambda (script)
+                        (invoke "nasm" "-o" (string-append (prefix script) "o")
+                                "-f" "win64" "-i" "include/" "-i" 
"pregenerated/tmp/"
+                                "-Xgnu" "-gcv8" script))
+                    (find-files "pregenerated/tmp" "nasm\\.asm"))
+
+                    (format #t "Creating the tarball ...~%")
+                    (force-output)
+                    ;; The other option is to use cargo package --allow-dirty
+                    (with-directory-excursion "../"
+                      (invoke "tar" "czf" #$output
+                              ;; avoid non-determinism in the archive
+                              "--sort=name" "--mtime=@0"
+                              "--owner=root:0" "--group=root:0"
+                              (string-append "ring-" #$version))))))))))))
+
+(define-public rust-ring-0.17
+  (package
+    (name "rust-ring")
+    (version "0.17.7")
+    (source rust-ring-0.17-sources)
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-cc" ,rust-cc-1)
+                       ("rust-getrandom" ,rust-getrandom-0.2)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-spin" ,rust-spin-0.9)
+                       ("rust-untrusted" ,rust-untrusted-0.9)
+                       ("rust-windows-sys" ,rust-windows-sys-0.48))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (home-page "https://github.com/briansmith/ring";)
+    (synopsis "Safe, fast, small crypto using Rust")
+    (description "This package provided safe, fast, small crypto using Rust.")
+    (license (list license:isc license:openssl))))
+
 (define-public rust-ring-0.16
   (package
+    (inherit rust-ring-0.17)
     (name "rust-ring")
     (version "0.16.20")
     (source
@@ -63946,7 +64159,6 @@ Digital Signature Algorithm} (ECDSA).")
            (with-output-to-file ".git"
              (lambda _
                 (format #t "")))))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
@@ -63970,14 +64182,10 @@ Digital Signature Algorithm} (ECDSA).")
                    (invoke "python" "make_curve25519_tables.py")))))))))
     (native-inputs
      (list clang perl python-2))
-    (home-page "https://github.com/briansmith/ring";)
-    (synopsis "Safe, fast, small crypto using Rust")
-    (description "This package provided safe, fast, small crypto using Rust.")
     ;; For a mostly complete list of supported systems see:
     ;; 
https://github.com/briansmith/ring/blob/main/.github/workflows/ci.yml#L170
     (supported-systems (list "aarch64-linux" "armhf-linux"
-                             "i686-linux" "x86_64-linux"))
-    (license (list license:isc license:openssl))))
+                             "i686-linux" "x86_64-linux"))))
 
 (define-public rust-ring-0.14
   (package
diff --git a/gnu/packages/patches/rust-ring-0.17-ring-core.patch 
b/gnu/packages/patches/rust-ring-0.17-ring-core.patch
new file mode 100644
index 0000000000..faa3a8a191
--- /dev/null
+++ b/gnu/packages/patches/rust-ring-0.17-ring-core.patch
@@ -0,0 +1,496 @@
+These two files are needed to finish generating the files for windows
+and were generated using 'RING_PREGENERATE_ASM=1 cargo build
+--target-dir=target/pregenerate_asm'. Included here so we don't need to
+add cargo to the computed-source.
+
+---
+ .../ring_core_generated/prefix_symbols_asm.h  | 236 ++++++++++++++++++
+ .../prefix_symbols_nasm.inc                   | 236 ++++++++++++++++++
+ 2 files changed, 472 insertions(+)
+ create mode 100644 pregenerated/tmp/ring_core_generated/prefix_symbols_asm.h
+ create mode 100644 
pregenerated/tmp/ring_core_generated/prefix_symbols_nasm.inc
+
+diff --git a/pregenerated/tmp/ring_core_generated/prefix_symbols_asm.h 
b/pregenerated/tmp/ring_core_generated/prefix_symbols_asm.h
+new file mode 100644
+index 000000000..1cd766400
+--- /dev/null
++++ b/pregenerated/tmp/ring_core_generated/prefix_symbols_asm.h
+@@ -0,0 +1,236 @@
++
++#ifndef ring_core_generated_PREFIX_SYMBOLS_ASM_H
++#define ring_core_generated_PREFIX_SYMBOLS_ASM_H
++
++#if defined(__APPLE__)
++#define _ecp_nistz256_point_double _p256_point_double
++#define _ecp_nistz256_point_add _p256_point_add
++#define _ecp_nistz256_point_add_affine _p256_point_add_affine
++#define _ecp_nistz256_ord_mul_mont _p256_scalar_mul_mont
++#define _ecp_nistz256_ord_sqr_mont _p256_scalar_sqr_rep_mont
++#define _ecp_nistz256_mul_mont _p256_mul_mont
++#define _ecp_nistz256_sqr_mont _p256_sqr_mont
++#define _CRYPTO_memcmp _ring_core_0_17_7_CRYPTO_memcmp
++#define _CRYPTO_poly1305_finish _ring_core_0_17_7_CRYPTO_poly1305_finish
++#define _CRYPTO_poly1305_finish_neon 
_ring_core_0_17_7_CRYPTO_poly1305_finish_neon
++#define _CRYPTO_poly1305_init _ring_core_0_17_7_CRYPTO_poly1305_init
++#define _CRYPTO_poly1305_init_neon _ring_core_0_17_7_CRYPTO_poly1305_init_neon
++#define _CRYPTO_poly1305_update _ring_core_0_17_7_CRYPTO_poly1305_update
++#define _CRYPTO_poly1305_update_neon 
_ring_core_0_17_7_CRYPTO_poly1305_update_neon
++#define _ChaCha20_ctr32 _ring_core_0_17_7_ChaCha20_ctr32
++#define _LIMBS_add_mod _ring_core_0_17_7_LIMBS_add_mod
++#define _LIMBS_are_even _ring_core_0_17_7_LIMBS_are_even
++#define _LIMBS_are_zero _ring_core_0_17_7_LIMBS_are_zero
++#define _LIMBS_equal _ring_core_0_17_7_LIMBS_equal
++#define _LIMBS_equal_limb _ring_core_0_17_7_LIMBS_equal_limb
++#define _LIMBS_less_than _ring_core_0_17_7_LIMBS_less_than
++#define _LIMBS_less_than_limb _ring_core_0_17_7_LIMBS_less_than_limb
++#define _LIMBS_reduce_once _ring_core_0_17_7_LIMBS_reduce_once
++#define _LIMBS_select_512_32 _ring_core_0_17_7_LIMBS_select_512_32
++#define _LIMBS_shl_mod _ring_core_0_17_7_LIMBS_shl_mod
++#define _LIMBS_sub_mod _ring_core_0_17_7_LIMBS_sub_mod
++#define _LIMBS_window5_split_window 
_ring_core_0_17_7_LIMBS_window5_split_window
++#define _LIMBS_window5_unsplit_window 
_ring_core_0_17_7_LIMBS_window5_unsplit_window
++#define _LIMB_shr _ring_core_0_17_7_LIMB_shr
++#define _OPENSSL_armcap_P _ring_core_0_17_7_OPENSSL_armcap_P
++#define _OPENSSL_cpuid_setup _ring_core_0_17_7_OPENSSL_cpuid_setup
++#define _OPENSSL_ia32cap_P _ring_core_0_17_7_OPENSSL_ia32cap_P
++#define _aes_hw_ctr32_encrypt_blocks 
_ring_core_0_17_7_aes_hw_ctr32_encrypt_blocks
++#define _aes_hw_encrypt _ring_core_0_17_7_aes_hw_encrypt
++#define _aes_hw_set_encrypt_key _ring_core_0_17_7_aes_hw_set_encrypt_key
++#define _aes_nohw_ctr32_encrypt_blocks 
_ring_core_0_17_7_aes_nohw_ctr32_encrypt_blocks
++#define _aes_nohw_encrypt _ring_core_0_17_7_aes_nohw_encrypt
++#define _aes_nohw_set_encrypt_key _ring_core_0_17_7_aes_nohw_set_encrypt_key
++#define _aesni_gcm_decrypt _ring_core_0_17_7_aesni_gcm_decrypt
++#define _aesni_gcm_encrypt _ring_core_0_17_7_aesni_gcm_encrypt
++#define _bn_from_montgomery_in_place 
_ring_core_0_17_7_bn_from_montgomery_in_place
++#define _bn_gather5 _ring_core_0_17_7_bn_gather5
++#define _bn_mul_mont _ring_core_0_17_7_bn_mul_mont
++#define _bn_mul_mont_gather5 _ring_core_0_17_7_bn_mul_mont_gather5
++#define _bn_neg_inv_mod_r_u64 _ring_core_0_17_7_bn_neg_inv_mod_r_u64
++#define _bn_power5 _ring_core_0_17_7_bn_power5
++#define _bn_scatter5 _ring_core_0_17_7_bn_scatter5
++#define _bn_sqr8x_internal _ring_core_0_17_7_bn_sqr8x_internal
++#define _bn_sqrx8x_internal _ring_core_0_17_7_bn_sqrx8x_internal
++#define _bsaes_ctr32_encrypt_blocks 
_ring_core_0_17_7_bsaes_ctr32_encrypt_blocks
++#define _bssl_constant_time_test_conditional_memcpy 
_ring_core_0_17_7_bssl_constant_time_test_conditional_memcpy
++#define _bssl_constant_time_test_conditional_memxor 
_ring_core_0_17_7_bssl_constant_time_test_conditional_memxor
++#define _bssl_constant_time_test_main 
_ring_core_0_17_7_bssl_constant_time_test_main
++#define _chacha20_poly1305_open _ring_core_0_17_7_chacha20_poly1305_open
++#define _chacha20_poly1305_seal _ring_core_0_17_7_chacha20_poly1305_seal
++#define _fiat_curve25519_adx_mul _ring_core_0_17_7_fiat_curve25519_adx_mul
++#define _fiat_curve25519_adx_square 
_ring_core_0_17_7_fiat_curve25519_adx_square
++#define _gcm_ghash_avx _ring_core_0_17_7_gcm_ghash_avx
++#define _gcm_ghash_clmul _ring_core_0_17_7_gcm_ghash_clmul
++#define _gcm_ghash_neon _ring_core_0_17_7_gcm_ghash_neon
++#define _gcm_gmult_clmul _ring_core_0_17_7_gcm_gmult_clmul
++#define _gcm_gmult_neon _ring_core_0_17_7_gcm_gmult_neon
++#define _gcm_init_avx _ring_core_0_17_7_gcm_init_avx
++#define _gcm_init_clmul _ring_core_0_17_7_gcm_init_clmul
++#define _gcm_init_neon _ring_core_0_17_7_gcm_init_neon
++#define _k25519Precomp _ring_core_0_17_7_k25519Precomp
++#define _limbs_mul_add_limb _ring_core_0_17_7_limbs_mul_add_limb
++#define _little_endian_bytes_from_scalar 
_ring_core_0_17_7_little_endian_bytes_from_scalar
++#define _ecp_nistz256_neg _ring_core_0_17_7_ecp_nistz256_neg
++#define _ecp_nistz256_select_w5 _ring_core_0_17_7_ecp_nistz256_select_w5
++#define _ecp_nistz256_select_w7 _ring_core_0_17_7_ecp_nistz256_select_w7
++#define _p256_mul_mont _ring_core_0_17_7_p256_mul_mont
++#define _p256_point_add _ring_core_0_17_7_p256_point_add
++#define _p256_point_add_affine _ring_core_0_17_7_p256_point_add_affine
++#define _p256_point_double _ring_core_0_17_7_p256_point_double
++#define _p256_point_mul _ring_core_0_17_7_p256_point_mul
++#define _p256_point_mul_base _ring_core_0_17_7_p256_point_mul_base
++#define _p256_point_mul_base_vartime 
_ring_core_0_17_7_p256_point_mul_base_vartime
++#define _p256_scalar_mul_mont _ring_core_0_17_7_p256_scalar_mul_mont
++#define _p256_scalar_sqr_rep_mont _ring_core_0_17_7_p256_scalar_sqr_rep_mont
++#define _p256_sqr_mont _ring_core_0_17_7_p256_sqr_mont
++#define _p384_elem_div_by_2 _ring_core_0_17_7_p384_elem_div_by_2
++#define _p384_elem_mul_mont _ring_core_0_17_7_p384_elem_mul_mont
++#define _p384_elem_neg _ring_core_0_17_7_p384_elem_neg
++#define _p384_elem_sub _ring_core_0_17_7_p384_elem_sub
++#define _p384_point_add _ring_core_0_17_7_p384_point_add
++#define _p384_point_double _ring_core_0_17_7_p384_point_double
++#define _p384_point_mul _ring_core_0_17_7_p384_point_mul
++#define _p384_scalar_mul_mont _ring_core_0_17_7_p384_scalar_mul_mont
++#define _openssl_poly1305_neon2_addmulmod 
_ring_core_0_17_7_openssl_poly1305_neon2_addmulmod
++#define _openssl_poly1305_neon2_blocks 
_ring_core_0_17_7_openssl_poly1305_neon2_blocks
++#define _sha256_block_data_order _ring_core_0_17_7_sha256_block_data_order
++#define _sha512_block_data_order _ring_core_0_17_7_sha512_block_data_order
++#define _vpaes_ctr32_encrypt_blocks 
_ring_core_0_17_7_vpaes_ctr32_encrypt_blocks
++#define _vpaes_encrypt _ring_core_0_17_7_vpaes_encrypt
++#define _vpaes_encrypt_key_to_bsaes 
_ring_core_0_17_7_vpaes_encrypt_key_to_bsaes
++#define _vpaes_set_encrypt_key _ring_core_0_17_7_vpaes_set_encrypt_key
++#define _x25519_NEON _ring_core_0_17_7_x25519_NEON
++#define _x25519_fe_invert _ring_core_0_17_7_x25519_fe_invert
++#define _x25519_fe_isnegative _ring_core_0_17_7_x25519_fe_isnegative
++#define _x25519_fe_mul_ttt _ring_core_0_17_7_x25519_fe_mul_ttt
++#define _x25519_fe_neg _ring_core_0_17_7_x25519_fe_neg
++#define _x25519_fe_tobytes _ring_core_0_17_7_x25519_fe_tobytes
++#define _x25519_ge_double_scalarmult_vartime 
_ring_core_0_17_7_x25519_ge_double_scalarmult_vartime
++#define _x25519_ge_frombytes_vartime 
_ring_core_0_17_7_x25519_ge_frombytes_vartime
++#define _x25519_ge_scalarmult_base _ring_core_0_17_7_x25519_ge_scalarmult_base
++#define _x25519_ge_scalarmult_base_adx 
_ring_core_0_17_7_x25519_ge_scalarmult_base_adx
++#define _x25519_public_from_private_generic_masked 
_ring_core_0_17_7_x25519_public_from_private_generic_masked
++#define _x25519_sc_mask _ring_core_0_17_7_x25519_sc_mask
++#define _x25519_sc_muladd _ring_core_0_17_7_x25519_sc_muladd
++#define _x25519_sc_reduce _ring_core_0_17_7_x25519_sc_reduce
++#define _x25519_scalar_mult_adx _ring_core_0_17_7_x25519_scalar_mult_adx
++#define _x25519_scalar_mult_generic_masked 
_ring_core_0_17_7_x25519_scalar_mult_generic_masked
++
++#else
++#define ecp_nistz256_point_double p256_point_double
++#define ecp_nistz256_point_add p256_point_add
++#define ecp_nistz256_point_add_affine p256_point_add_affine
++#define ecp_nistz256_ord_mul_mont p256_scalar_mul_mont
++#define ecp_nistz256_ord_sqr_mont p256_scalar_sqr_rep_mont
++#define ecp_nistz256_mul_mont p256_mul_mont
++#define ecp_nistz256_sqr_mont p256_sqr_mont
++#define CRYPTO_memcmp ring_core_0_17_7_CRYPTO_memcmp
++#define CRYPTO_poly1305_finish ring_core_0_17_7_CRYPTO_poly1305_finish
++#define CRYPTO_poly1305_finish_neon 
ring_core_0_17_7_CRYPTO_poly1305_finish_neon
++#define CRYPTO_poly1305_init ring_core_0_17_7_CRYPTO_poly1305_init
++#define CRYPTO_poly1305_init_neon ring_core_0_17_7_CRYPTO_poly1305_init_neon
++#define CRYPTO_poly1305_update ring_core_0_17_7_CRYPTO_poly1305_update
++#define CRYPTO_poly1305_update_neon 
ring_core_0_17_7_CRYPTO_poly1305_update_neon
++#define ChaCha20_ctr32 ring_core_0_17_7_ChaCha20_ctr32
++#define LIMBS_add_mod ring_core_0_17_7_LIMBS_add_mod
++#define LIMBS_are_even ring_core_0_17_7_LIMBS_are_even
++#define LIMBS_are_zero ring_core_0_17_7_LIMBS_are_zero
++#define LIMBS_equal ring_core_0_17_7_LIMBS_equal
++#define LIMBS_equal_limb ring_core_0_17_7_LIMBS_equal_limb
++#define LIMBS_less_than ring_core_0_17_7_LIMBS_less_than
++#define LIMBS_less_than_limb ring_core_0_17_7_LIMBS_less_than_limb
++#define LIMBS_reduce_once ring_core_0_17_7_LIMBS_reduce_once
++#define LIMBS_select_512_32 ring_core_0_17_7_LIMBS_select_512_32
++#define LIMBS_shl_mod ring_core_0_17_7_LIMBS_shl_mod
++#define LIMBS_sub_mod ring_core_0_17_7_LIMBS_sub_mod
++#define LIMBS_window5_split_window ring_core_0_17_7_LIMBS_window5_split_window
++#define LIMBS_window5_unsplit_window 
ring_core_0_17_7_LIMBS_window5_unsplit_window
++#define LIMB_shr ring_core_0_17_7_LIMB_shr
++#define OPENSSL_armcap_P ring_core_0_17_7_OPENSSL_armcap_P
++#define OPENSSL_cpuid_setup ring_core_0_17_7_OPENSSL_cpuid_setup
++#define OPENSSL_ia32cap_P ring_core_0_17_7_OPENSSL_ia32cap_P
++#define aes_hw_ctr32_encrypt_blocks 
ring_core_0_17_7_aes_hw_ctr32_encrypt_blocks
++#define aes_hw_encrypt ring_core_0_17_7_aes_hw_encrypt
++#define aes_hw_set_encrypt_key ring_core_0_17_7_aes_hw_set_encrypt_key
++#define aes_nohw_ctr32_encrypt_blocks 
ring_core_0_17_7_aes_nohw_ctr32_encrypt_blocks
++#define aes_nohw_encrypt ring_core_0_17_7_aes_nohw_encrypt
++#define aes_nohw_set_encrypt_key ring_core_0_17_7_aes_nohw_set_encrypt_key
++#define aesni_gcm_decrypt ring_core_0_17_7_aesni_gcm_decrypt
++#define aesni_gcm_encrypt ring_core_0_17_7_aesni_gcm_encrypt
++#define bn_from_montgomery_in_place 
ring_core_0_17_7_bn_from_montgomery_in_place
++#define bn_gather5 ring_core_0_17_7_bn_gather5
++#define bn_mul_mont ring_core_0_17_7_bn_mul_mont
++#define bn_mul_mont_gather5 ring_core_0_17_7_bn_mul_mont_gather5
++#define bn_neg_inv_mod_r_u64 ring_core_0_17_7_bn_neg_inv_mod_r_u64
++#define bn_power5 ring_core_0_17_7_bn_power5
++#define bn_scatter5 ring_core_0_17_7_bn_scatter5
++#define bn_sqr8x_internal ring_core_0_17_7_bn_sqr8x_internal
++#define bn_sqrx8x_internal ring_core_0_17_7_bn_sqrx8x_internal
++#define bsaes_ctr32_encrypt_blocks ring_core_0_17_7_bsaes_ctr32_encrypt_blocks
++#define bssl_constant_time_test_conditional_memcpy 
ring_core_0_17_7_bssl_constant_time_test_conditional_memcpy
++#define bssl_constant_time_test_conditional_memxor 
ring_core_0_17_7_bssl_constant_time_test_conditional_memxor
++#define bssl_constant_time_test_main 
ring_core_0_17_7_bssl_constant_time_test_main
++#define chacha20_poly1305_open ring_core_0_17_7_chacha20_poly1305_open
++#define chacha20_poly1305_seal ring_core_0_17_7_chacha20_poly1305_seal
++#define fiat_curve25519_adx_mul ring_core_0_17_7_fiat_curve25519_adx_mul
++#define fiat_curve25519_adx_square ring_core_0_17_7_fiat_curve25519_adx_square
++#define gcm_ghash_avx ring_core_0_17_7_gcm_ghash_avx
++#define gcm_ghash_clmul ring_core_0_17_7_gcm_ghash_clmul
++#define gcm_ghash_neon ring_core_0_17_7_gcm_ghash_neon
++#define gcm_gmult_clmul ring_core_0_17_7_gcm_gmult_clmul
++#define gcm_gmult_neon ring_core_0_17_7_gcm_gmult_neon
++#define gcm_init_avx ring_core_0_17_7_gcm_init_avx
++#define gcm_init_clmul ring_core_0_17_7_gcm_init_clmul
++#define gcm_init_neon ring_core_0_17_7_gcm_init_neon
++#define k25519Precomp ring_core_0_17_7_k25519Precomp
++#define limbs_mul_add_limb ring_core_0_17_7_limbs_mul_add_limb
++#define little_endian_bytes_from_scalar 
ring_core_0_17_7_little_endian_bytes_from_scalar
++#define ecp_nistz256_neg ring_core_0_17_7_ecp_nistz256_neg
++#define ecp_nistz256_select_w5 ring_core_0_17_7_ecp_nistz256_select_w5
++#define ecp_nistz256_select_w7 ring_core_0_17_7_ecp_nistz256_select_w7
++#define p256_mul_mont ring_core_0_17_7_p256_mul_mont
++#define p256_point_add ring_core_0_17_7_p256_point_add
++#define p256_point_add_affine ring_core_0_17_7_p256_point_add_affine
++#define p256_point_double ring_core_0_17_7_p256_point_double
++#define p256_point_mul ring_core_0_17_7_p256_point_mul
++#define p256_point_mul_base ring_core_0_17_7_p256_point_mul_base
++#define p256_point_mul_base_vartime 
ring_core_0_17_7_p256_point_mul_base_vartime
++#define p256_scalar_mul_mont ring_core_0_17_7_p256_scalar_mul_mont
++#define p256_scalar_sqr_rep_mont ring_core_0_17_7_p256_scalar_sqr_rep_mont
++#define p256_sqr_mont ring_core_0_17_7_p256_sqr_mont
++#define p384_elem_div_by_2 ring_core_0_17_7_p384_elem_div_by_2
++#define p384_elem_mul_mont ring_core_0_17_7_p384_elem_mul_mont
++#define p384_elem_neg ring_core_0_17_7_p384_elem_neg
++#define p384_elem_sub ring_core_0_17_7_p384_elem_sub
++#define p384_point_add ring_core_0_17_7_p384_point_add
++#define p384_point_double ring_core_0_17_7_p384_point_double
++#define p384_point_mul ring_core_0_17_7_p384_point_mul
++#define p384_scalar_mul_mont ring_core_0_17_7_p384_scalar_mul_mont
++#define openssl_poly1305_neon2_addmulmod 
ring_core_0_17_7_openssl_poly1305_neon2_addmulmod
++#define openssl_poly1305_neon2_blocks 
ring_core_0_17_7_openssl_poly1305_neon2_blocks
++#define sha256_block_data_order ring_core_0_17_7_sha256_block_data_order
++#define sha512_block_data_order ring_core_0_17_7_sha512_block_data_order
++#define vpaes_ctr32_encrypt_blocks ring_core_0_17_7_vpaes_ctr32_encrypt_blocks
++#define vpaes_encrypt ring_core_0_17_7_vpaes_encrypt
++#define vpaes_encrypt_key_to_bsaes ring_core_0_17_7_vpaes_encrypt_key_to_bsaes
++#define vpaes_set_encrypt_key ring_core_0_17_7_vpaes_set_encrypt_key
++#define x25519_NEON ring_core_0_17_7_x25519_NEON
++#define x25519_fe_invert ring_core_0_17_7_x25519_fe_invert
++#define x25519_fe_isnegative ring_core_0_17_7_x25519_fe_isnegative
++#define x25519_fe_mul_ttt ring_core_0_17_7_x25519_fe_mul_ttt
++#define x25519_fe_neg ring_core_0_17_7_x25519_fe_neg
++#define x25519_fe_tobytes ring_core_0_17_7_x25519_fe_tobytes
++#define x25519_ge_double_scalarmult_vartime 
ring_core_0_17_7_x25519_ge_double_scalarmult_vartime
++#define x25519_ge_frombytes_vartime 
ring_core_0_17_7_x25519_ge_frombytes_vartime
++#define x25519_ge_scalarmult_base ring_core_0_17_7_x25519_ge_scalarmult_base
++#define x25519_ge_scalarmult_base_adx 
ring_core_0_17_7_x25519_ge_scalarmult_base_adx
++#define x25519_public_from_private_generic_masked 
ring_core_0_17_7_x25519_public_from_private_generic_masked
++#define x25519_sc_mask ring_core_0_17_7_x25519_sc_mask
++#define x25519_sc_muladd ring_core_0_17_7_x25519_sc_muladd
++#define x25519_sc_reduce ring_core_0_17_7_x25519_sc_reduce
++#define x25519_scalar_mult_adx ring_core_0_17_7_x25519_scalar_mult_adx
++#define x25519_scalar_mult_generic_masked 
ring_core_0_17_7_x25519_scalar_mult_generic_masked
++
++#endif
++#endif
+diff --git a/pregenerated/tmp/ring_core_generated/prefix_symbols_nasm.inc 
b/pregenerated/tmp/ring_core_generated/prefix_symbols_nasm.inc
+new file mode 100644
+index 000000000..65ce0cfaa
+--- /dev/null
++++ b/pregenerated/tmp/ring_core_generated/prefix_symbols_nasm.inc
+@@ -0,0 +1,236 @@
++
++%ifndef ring_core_generated_PREFIX_SYMBOLS_NASM_INC
++%define ring_core_generated_PREFIX_SYMBOLS_NASM_INC
++
++%ifidn __OUTPUT_FORMAT__,win32
++%define _ecp_nistz256_point_double _p256_point_double
++%define _ecp_nistz256_point_add _p256_point_add
++%define _ecp_nistz256_point_add_affine _p256_point_add_affine
++%define _ecp_nistz256_ord_mul_mont _p256_scalar_mul_mont
++%define _ecp_nistz256_ord_sqr_mont _p256_scalar_sqr_rep_mont
++%define _ecp_nistz256_mul_mont _p256_mul_mont
++%define _ecp_nistz256_sqr_mont _p256_sqr_mont
++%define _CRYPTO_memcmp _ring_core_0_17_7_CRYPTO_memcmp
++%define _CRYPTO_poly1305_finish _ring_core_0_17_7_CRYPTO_poly1305_finish
++%define _CRYPTO_poly1305_finish_neon 
_ring_core_0_17_7_CRYPTO_poly1305_finish_neon
++%define _CRYPTO_poly1305_init _ring_core_0_17_7_CRYPTO_poly1305_init
++%define _CRYPTO_poly1305_init_neon _ring_core_0_17_7_CRYPTO_poly1305_init_neon
++%define _CRYPTO_poly1305_update _ring_core_0_17_7_CRYPTO_poly1305_update
++%define _CRYPTO_poly1305_update_neon 
_ring_core_0_17_7_CRYPTO_poly1305_update_neon
++%define _ChaCha20_ctr32 _ring_core_0_17_7_ChaCha20_ctr32
++%define _LIMBS_add_mod _ring_core_0_17_7_LIMBS_add_mod
++%define _LIMBS_are_even _ring_core_0_17_7_LIMBS_are_even
++%define _LIMBS_are_zero _ring_core_0_17_7_LIMBS_are_zero
++%define _LIMBS_equal _ring_core_0_17_7_LIMBS_equal
++%define _LIMBS_equal_limb _ring_core_0_17_7_LIMBS_equal_limb
++%define _LIMBS_less_than _ring_core_0_17_7_LIMBS_less_than
++%define _LIMBS_less_than_limb _ring_core_0_17_7_LIMBS_less_than_limb
++%define _LIMBS_reduce_once _ring_core_0_17_7_LIMBS_reduce_once
++%define _LIMBS_select_512_32 _ring_core_0_17_7_LIMBS_select_512_32
++%define _LIMBS_shl_mod _ring_core_0_17_7_LIMBS_shl_mod
++%define _LIMBS_sub_mod _ring_core_0_17_7_LIMBS_sub_mod
++%define _LIMBS_window5_split_window 
_ring_core_0_17_7_LIMBS_window5_split_window
++%define _LIMBS_window5_unsplit_window 
_ring_core_0_17_7_LIMBS_window5_unsplit_window
++%define _LIMB_shr _ring_core_0_17_7_LIMB_shr
++%define _OPENSSL_armcap_P _ring_core_0_17_7_OPENSSL_armcap_P
++%define _OPENSSL_cpuid_setup _ring_core_0_17_7_OPENSSL_cpuid_setup
++%define _OPENSSL_ia32cap_P _ring_core_0_17_7_OPENSSL_ia32cap_P
++%define _aes_hw_ctr32_encrypt_blocks 
_ring_core_0_17_7_aes_hw_ctr32_encrypt_blocks
++%define _aes_hw_encrypt _ring_core_0_17_7_aes_hw_encrypt
++%define _aes_hw_set_encrypt_key _ring_core_0_17_7_aes_hw_set_encrypt_key
++%define _aes_nohw_ctr32_encrypt_blocks 
_ring_core_0_17_7_aes_nohw_ctr32_encrypt_blocks
++%define _aes_nohw_encrypt _ring_core_0_17_7_aes_nohw_encrypt
++%define _aes_nohw_set_encrypt_key _ring_core_0_17_7_aes_nohw_set_encrypt_key
++%define _aesni_gcm_decrypt _ring_core_0_17_7_aesni_gcm_decrypt
++%define _aesni_gcm_encrypt _ring_core_0_17_7_aesni_gcm_encrypt
++%define _bn_from_montgomery_in_place 
_ring_core_0_17_7_bn_from_montgomery_in_place
++%define _bn_gather5 _ring_core_0_17_7_bn_gather5
++%define _bn_mul_mont _ring_core_0_17_7_bn_mul_mont
++%define _bn_mul_mont_gather5 _ring_core_0_17_7_bn_mul_mont_gather5
++%define _bn_neg_inv_mod_r_u64 _ring_core_0_17_7_bn_neg_inv_mod_r_u64
++%define _bn_power5 _ring_core_0_17_7_bn_power5
++%define _bn_scatter5 _ring_core_0_17_7_bn_scatter5
++%define _bn_sqr8x_internal _ring_core_0_17_7_bn_sqr8x_internal
++%define _bn_sqrx8x_internal _ring_core_0_17_7_bn_sqrx8x_internal
++%define _bsaes_ctr32_encrypt_blocks 
_ring_core_0_17_7_bsaes_ctr32_encrypt_blocks
++%define _bssl_constant_time_test_conditional_memcpy 
_ring_core_0_17_7_bssl_constant_time_test_conditional_memcpy
++%define _bssl_constant_time_test_conditional_memxor 
_ring_core_0_17_7_bssl_constant_time_test_conditional_memxor
++%define _bssl_constant_time_test_main 
_ring_core_0_17_7_bssl_constant_time_test_main
++%define _chacha20_poly1305_open _ring_core_0_17_7_chacha20_poly1305_open
++%define _chacha20_poly1305_seal _ring_core_0_17_7_chacha20_poly1305_seal
++%define _fiat_curve25519_adx_mul _ring_core_0_17_7_fiat_curve25519_adx_mul
++%define _fiat_curve25519_adx_square 
_ring_core_0_17_7_fiat_curve25519_adx_square
++%define _gcm_ghash_avx _ring_core_0_17_7_gcm_ghash_avx
++%define _gcm_ghash_clmul _ring_core_0_17_7_gcm_ghash_clmul
++%define _gcm_ghash_neon _ring_core_0_17_7_gcm_ghash_neon
++%define _gcm_gmult_clmul _ring_core_0_17_7_gcm_gmult_clmul
++%define _gcm_gmult_neon _ring_core_0_17_7_gcm_gmult_neon
++%define _gcm_init_avx _ring_core_0_17_7_gcm_init_avx
++%define _gcm_init_clmul _ring_core_0_17_7_gcm_init_clmul
++%define _gcm_init_neon _ring_core_0_17_7_gcm_init_neon
++%define _k25519Precomp _ring_core_0_17_7_k25519Precomp
++%define _limbs_mul_add_limb _ring_core_0_17_7_limbs_mul_add_limb
++%define _little_endian_bytes_from_scalar 
_ring_core_0_17_7_little_endian_bytes_from_scalar
++%define _ecp_nistz256_neg _ring_core_0_17_7_ecp_nistz256_neg
++%define _ecp_nistz256_select_w5 _ring_core_0_17_7_ecp_nistz256_select_w5
++%define _ecp_nistz256_select_w7 _ring_core_0_17_7_ecp_nistz256_select_w7
++%define _p256_mul_mont _ring_core_0_17_7_p256_mul_mont
++%define _p256_point_add _ring_core_0_17_7_p256_point_add
++%define _p256_point_add_affine _ring_core_0_17_7_p256_point_add_affine
++%define _p256_point_double _ring_core_0_17_7_p256_point_double
++%define _p256_point_mul _ring_core_0_17_7_p256_point_mul
++%define _p256_point_mul_base _ring_core_0_17_7_p256_point_mul_base
++%define _p256_point_mul_base_vartime 
_ring_core_0_17_7_p256_point_mul_base_vartime
++%define _p256_scalar_mul_mont _ring_core_0_17_7_p256_scalar_mul_mont
++%define _p256_scalar_sqr_rep_mont _ring_core_0_17_7_p256_scalar_sqr_rep_mont
++%define _p256_sqr_mont _ring_core_0_17_7_p256_sqr_mont
++%define _p384_elem_div_by_2 _ring_core_0_17_7_p384_elem_div_by_2
++%define _p384_elem_mul_mont _ring_core_0_17_7_p384_elem_mul_mont
++%define _p384_elem_neg _ring_core_0_17_7_p384_elem_neg
++%define _p384_elem_sub _ring_core_0_17_7_p384_elem_sub
++%define _p384_point_add _ring_core_0_17_7_p384_point_add
++%define _p384_point_double _ring_core_0_17_7_p384_point_double
++%define _p384_point_mul _ring_core_0_17_7_p384_point_mul
++%define _p384_scalar_mul_mont _ring_core_0_17_7_p384_scalar_mul_mont
++%define _openssl_poly1305_neon2_addmulmod 
_ring_core_0_17_7_openssl_poly1305_neon2_addmulmod
++%define _openssl_poly1305_neon2_blocks 
_ring_core_0_17_7_openssl_poly1305_neon2_blocks
++%define _sha256_block_data_order _ring_core_0_17_7_sha256_block_data_order
++%define _sha512_block_data_order _ring_core_0_17_7_sha512_block_data_order
++%define _vpaes_ctr32_encrypt_blocks 
_ring_core_0_17_7_vpaes_ctr32_encrypt_blocks
++%define _vpaes_encrypt _ring_core_0_17_7_vpaes_encrypt
++%define _vpaes_encrypt_key_to_bsaes 
_ring_core_0_17_7_vpaes_encrypt_key_to_bsaes
++%define _vpaes_set_encrypt_key _ring_core_0_17_7_vpaes_set_encrypt_key
++%define _x25519_NEON _ring_core_0_17_7_x25519_NEON
++%define _x25519_fe_invert _ring_core_0_17_7_x25519_fe_invert
++%define _x25519_fe_isnegative _ring_core_0_17_7_x25519_fe_isnegative
++%define _x25519_fe_mul_ttt _ring_core_0_17_7_x25519_fe_mul_ttt
++%define _x25519_fe_neg _ring_core_0_17_7_x25519_fe_neg
++%define _x25519_fe_tobytes _ring_core_0_17_7_x25519_fe_tobytes
++%define _x25519_ge_double_scalarmult_vartime 
_ring_core_0_17_7_x25519_ge_double_scalarmult_vartime
++%define _x25519_ge_frombytes_vartime 
_ring_core_0_17_7_x25519_ge_frombytes_vartime
++%define _x25519_ge_scalarmult_base _ring_core_0_17_7_x25519_ge_scalarmult_base
++%define _x25519_ge_scalarmult_base_adx 
_ring_core_0_17_7_x25519_ge_scalarmult_base_adx
++%define _x25519_public_from_private_generic_masked 
_ring_core_0_17_7_x25519_public_from_private_generic_masked
++%define _x25519_sc_mask _ring_core_0_17_7_x25519_sc_mask
++%define _x25519_sc_muladd _ring_core_0_17_7_x25519_sc_muladd
++%define _x25519_sc_reduce _ring_core_0_17_7_x25519_sc_reduce
++%define _x25519_scalar_mult_adx _ring_core_0_17_7_x25519_scalar_mult_adx
++%define _x25519_scalar_mult_generic_masked 
_ring_core_0_17_7_x25519_scalar_mult_generic_masked
++
++%else
++%define ecp_nistz256_point_double p256_point_double
++%define ecp_nistz256_point_add p256_point_add
++%define ecp_nistz256_point_add_affine p256_point_add_affine
++%define ecp_nistz256_ord_mul_mont p256_scalar_mul_mont
++%define ecp_nistz256_ord_sqr_mont p256_scalar_sqr_rep_mont
++%define ecp_nistz256_mul_mont p256_mul_mont
++%define ecp_nistz256_sqr_mont p256_sqr_mont
++%define CRYPTO_memcmp ring_core_0_17_7_CRYPTO_memcmp
++%define CRYPTO_poly1305_finish ring_core_0_17_7_CRYPTO_poly1305_finish
++%define CRYPTO_poly1305_finish_neon 
ring_core_0_17_7_CRYPTO_poly1305_finish_neon
++%define CRYPTO_poly1305_init ring_core_0_17_7_CRYPTO_poly1305_init
++%define CRYPTO_poly1305_init_neon ring_core_0_17_7_CRYPTO_poly1305_init_neon
++%define CRYPTO_poly1305_update ring_core_0_17_7_CRYPTO_poly1305_update
++%define CRYPTO_poly1305_update_neon 
ring_core_0_17_7_CRYPTO_poly1305_update_neon
++%define ChaCha20_ctr32 ring_core_0_17_7_ChaCha20_ctr32
++%define LIMBS_add_mod ring_core_0_17_7_LIMBS_add_mod
++%define LIMBS_are_even ring_core_0_17_7_LIMBS_are_even
++%define LIMBS_are_zero ring_core_0_17_7_LIMBS_are_zero
++%define LIMBS_equal ring_core_0_17_7_LIMBS_equal
++%define LIMBS_equal_limb ring_core_0_17_7_LIMBS_equal_limb
++%define LIMBS_less_than ring_core_0_17_7_LIMBS_less_than
++%define LIMBS_less_than_limb ring_core_0_17_7_LIMBS_less_than_limb
++%define LIMBS_reduce_once ring_core_0_17_7_LIMBS_reduce_once
++%define LIMBS_select_512_32 ring_core_0_17_7_LIMBS_select_512_32
++%define LIMBS_shl_mod ring_core_0_17_7_LIMBS_shl_mod
++%define LIMBS_sub_mod ring_core_0_17_7_LIMBS_sub_mod
++%define LIMBS_window5_split_window ring_core_0_17_7_LIMBS_window5_split_window
++%define LIMBS_window5_unsplit_window 
ring_core_0_17_7_LIMBS_window5_unsplit_window
++%define LIMB_shr ring_core_0_17_7_LIMB_shr
++%define OPENSSL_armcap_P ring_core_0_17_7_OPENSSL_armcap_P
++%define OPENSSL_cpuid_setup ring_core_0_17_7_OPENSSL_cpuid_setup
++%define OPENSSL_ia32cap_P ring_core_0_17_7_OPENSSL_ia32cap_P
++%define aes_hw_ctr32_encrypt_blocks 
ring_core_0_17_7_aes_hw_ctr32_encrypt_blocks
++%define aes_hw_encrypt ring_core_0_17_7_aes_hw_encrypt
++%define aes_hw_set_encrypt_key ring_core_0_17_7_aes_hw_set_encrypt_key
++%define aes_nohw_ctr32_encrypt_blocks 
ring_core_0_17_7_aes_nohw_ctr32_encrypt_blocks
++%define aes_nohw_encrypt ring_core_0_17_7_aes_nohw_encrypt
++%define aes_nohw_set_encrypt_key ring_core_0_17_7_aes_nohw_set_encrypt_key
++%define aesni_gcm_decrypt ring_core_0_17_7_aesni_gcm_decrypt
++%define aesni_gcm_encrypt ring_core_0_17_7_aesni_gcm_encrypt
++%define bn_from_montgomery_in_place 
ring_core_0_17_7_bn_from_montgomery_in_place
++%define bn_gather5 ring_core_0_17_7_bn_gather5
++%define bn_mul_mont ring_core_0_17_7_bn_mul_mont
++%define bn_mul_mont_gather5 ring_core_0_17_7_bn_mul_mont_gather5
++%define bn_neg_inv_mod_r_u64 ring_core_0_17_7_bn_neg_inv_mod_r_u64
++%define bn_power5 ring_core_0_17_7_bn_power5
++%define bn_scatter5 ring_core_0_17_7_bn_scatter5
++%define bn_sqr8x_internal ring_core_0_17_7_bn_sqr8x_internal
++%define bn_sqrx8x_internal ring_core_0_17_7_bn_sqrx8x_internal
++%define bsaes_ctr32_encrypt_blocks ring_core_0_17_7_bsaes_ctr32_encrypt_blocks
++%define bssl_constant_time_test_conditional_memcpy 
ring_core_0_17_7_bssl_constant_time_test_conditional_memcpy
++%define bssl_constant_time_test_conditional_memxor 
ring_core_0_17_7_bssl_constant_time_test_conditional_memxor
++%define bssl_constant_time_test_main 
ring_core_0_17_7_bssl_constant_time_test_main
++%define chacha20_poly1305_open ring_core_0_17_7_chacha20_poly1305_open
++%define chacha20_poly1305_seal ring_core_0_17_7_chacha20_poly1305_seal
++%define fiat_curve25519_adx_mul ring_core_0_17_7_fiat_curve25519_adx_mul
++%define fiat_curve25519_adx_square ring_core_0_17_7_fiat_curve25519_adx_square
++%define gcm_ghash_avx ring_core_0_17_7_gcm_ghash_avx
++%define gcm_ghash_clmul ring_core_0_17_7_gcm_ghash_clmul
++%define gcm_ghash_neon ring_core_0_17_7_gcm_ghash_neon
++%define gcm_gmult_clmul ring_core_0_17_7_gcm_gmult_clmul
++%define gcm_gmult_neon ring_core_0_17_7_gcm_gmult_neon
++%define gcm_init_avx ring_core_0_17_7_gcm_init_avx
++%define gcm_init_clmul ring_core_0_17_7_gcm_init_clmul
++%define gcm_init_neon ring_core_0_17_7_gcm_init_neon
++%define k25519Precomp ring_core_0_17_7_k25519Precomp
++%define limbs_mul_add_limb ring_core_0_17_7_limbs_mul_add_limb
++%define little_endian_bytes_from_scalar 
ring_core_0_17_7_little_endian_bytes_from_scalar
++%define ecp_nistz256_neg ring_core_0_17_7_ecp_nistz256_neg
++%define ecp_nistz256_select_w5 ring_core_0_17_7_ecp_nistz256_select_w5
++%define ecp_nistz256_select_w7 ring_core_0_17_7_ecp_nistz256_select_w7
++%define p256_mul_mont ring_core_0_17_7_p256_mul_mont
++%define p256_point_add ring_core_0_17_7_p256_point_add
++%define p256_point_add_affine ring_core_0_17_7_p256_point_add_affine
++%define p256_point_double ring_core_0_17_7_p256_point_double
++%define p256_point_mul ring_core_0_17_7_p256_point_mul
++%define p256_point_mul_base ring_core_0_17_7_p256_point_mul_base
++%define p256_point_mul_base_vartime 
ring_core_0_17_7_p256_point_mul_base_vartime
++%define p256_scalar_mul_mont ring_core_0_17_7_p256_scalar_mul_mont
++%define p256_scalar_sqr_rep_mont ring_core_0_17_7_p256_scalar_sqr_rep_mont
++%define p256_sqr_mont ring_core_0_17_7_p256_sqr_mont
++%define p384_elem_div_by_2 ring_core_0_17_7_p384_elem_div_by_2
++%define p384_elem_mul_mont ring_core_0_17_7_p384_elem_mul_mont
++%define p384_elem_neg ring_core_0_17_7_p384_elem_neg
++%define p384_elem_sub ring_core_0_17_7_p384_elem_sub
++%define p384_point_add ring_core_0_17_7_p384_point_add
++%define p384_point_double ring_core_0_17_7_p384_point_double
++%define p384_point_mul ring_core_0_17_7_p384_point_mul
++%define p384_scalar_mul_mont ring_core_0_17_7_p384_scalar_mul_mont
++%define openssl_poly1305_neon2_addmulmod 
ring_core_0_17_7_openssl_poly1305_neon2_addmulmod
++%define openssl_poly1305_neon2_blocks 
ring_core_0_17_7_openssl_poly1305_neon2_blocks
++%define sha256_block_data_order ring_core_0_17_7_sha256_block_data_order
++%define sha512_block_data_order ring_core_0_17_7_sha512_block_data_order
++%define vpaes_ctr32_encrypt_blocks ring_core_0_17_7_vpaes_ctr32_encrypt_blocks
++%define vpaes_encrypt ring_core_0_17_7_vpaes_encrypt
++%define vpaes_encrypt_key_to_bsaes ring_core_0_17_7_vpaes_encrypt_key_to_bsaes
++%define vpaes_set_encrypt_key ring_core_0_17_7_vpaes_set_encrypt_key
++%define x25519_NEON ring_core_0_17_7_x25519_NEON
++%define x25519_fe_invert ring_core_0_17_7_x25519_fe_invert
++%define x25519_fe_isnegative ring_core_0_17_7_x25519_fe_isnegative
++%define x25519_fe_mul_ttt ring_core_0_17_7_x25519_fe_mul_ttt
++%define x25519_fe_neg ring_core_0_17_7_x25519_fe_neg
++%define x25519_fe_tobytes ring_core_0_17_7_x25519_fe_tobytes
++%define x25519_ge_double_scalarmult_vartime 
ring_core_0_17_7_x25519_ge_double_scalarmult_vartime
++%define x25519_ge_frombytes_vartime 
ring_core_0_17_7_x25519_ge_frombytes_vartime
++%define x25519_ge_scalarmult_base ring_core_0_17_7_x25519_ge_scalarmult_base
++%define x25519_ge_scalarmult_base_adx 
ring_core_0_17_7_x25519_ge_scalarmult_base_adx
++%define x25519_public_from_private_generic_masked 
ring_core_0_17_7_x25519_public_from_private_generic_masked
++%define x25519_sc_mask ring_core_0_17_7_x25519_sc_mask
++%define x25519_sc_muladd ring_core_0_17_7_x25519_sc_muladd
++%define x25519_sc_reduce ring_core_0_17_7_x25519_sc_reduce
++%define x25519_scalar_mult_adx ring_core_0_17_7_x25519_scalar_mult_adx
++%define x25519_scalar_mult_generic_masked 
ring_core_0_17_7_x25519_scalar_mult_generic_masked
++
++%endif
++%endif



reply via email to

[Prev in Thread] Current Thread [Next in Thread]