UltrafastSecp256k1/UltrafastSecp256k1.podspec
Vano Chkheidze 3105dc10d6
fix: schnorr parity, CFL hardening, MIT license (#48)
## Changes
- schnorr verify Y-parity fix
- CFL fuzz_point hardened (ASan/UBSan only, no arithmetic assertions)
- cmake sanitizer detection (no -O3 override in CFL builds)
- normalizes_to_zero full normalization for 52-bit path
- normalize_weak before zero-check in mixed-add
- inverse_safegcd + from_jac52 Z=0 guards
- MIT license migration (31 files AGPL -> MIT)
2026-02-27 19:45:10 +04:00

81 lines
3.0 KiB
Ruby

Pod::Spec.new do |s|
s.name = "UltrafastSecp256k1"
s.version = "3.0.0"
s.summary = "Ultra high-performance secp256k1 elliptic curve cryptography"
s.description = <<-DESC
Hardware-accelerated secp256k1 library with ARM64 inline assembly,
ECDSA (RFC 6979), Schnorr (BIP-340), and constant-time operations.
Optimized for Apple Silicon with MUL/UMULH instructions.
DESC
s.homepage = "https://github.com/shrec/UltrafastSecp256k1"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "shrec" => "https://github.com/shrec" }
s.ios.deployment_target = "17.0"
s.osx.deployment_target = "14.0"
s.watchos.deployment_target = "10.0"
s.tvos.deployment_target = "17.0"
s.visionos.deployment_target = "1.0"
s.source = {
:git => "https://github.com/shrec/UltrafastSecp256k1.git",
:tag => s.version.to_s
}
# ── Source files ──────────────────────────────────────────────────────────
s.source_files = [
"cpu/src/**/*.{cpp,c}",
"cpu/include/**/*.{hpp,h}",
"include/**/*.{hpp,h}",
]
# Exclude platform-specific assembly not for Apple ARM64
s.exclude_files = [
"cpu/src/field_asm_x64.asm",
"cpu/src/field_asm_x64.cpp",
"cpu/src/field_asm_x64_gas.S",
"cpu/src/field_asm_riscv64.S",
"cpu/src/field_asm_riscv64.cpp",
"cpu/src/platform_compat.h",
"cpu/src/decomposition_optimized.hpp",
]
# ── Public headers ────────────────────────────────────────────────────────
s.public_header_files = [
"cpu/include/**/*.{hpp,h}",
"include/**/*.{hpp,h}",
]
s.header_mappings_dir = "cpu/include"
# ── Build settings ────────────────────────────────────────────────────────
s.pod_target_xcconfig = {
"CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
"HEADER_SEARCH_PATHS" => [
"$(PODS_TARGET_SRCROOT)/cpu/include",
"$(PODS_TARGET_SRCROOT)/include",
].join(" "),
"GCC_PREPROCESSOR_DEFINITIONS" => [
"SECP256K1_FAST_NO_SECURITY_CHECKS=1",
"SECP256K1_ULTRA_SPEED=1",
"SECP256K1_HAS_ARM64_ASM=1",
"SECP256K1_HAS_ASM=1",
"NDEBUG=1",
].join(" "),
"OTHER_CPLUSPLUSFLAGS" => "-O3 -fno-math-errno -fno-trapping-math -funroll-loops",
}
s.user_target_xcconfig = {
"CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
}
s.libraries = "c++"
s.requires_arc = false
s.static_framework = true
# ── Module ────────────────────────────────────────────────────────────────
s.module_name = "UltrafastSecp256k1"
s.module_map = "cpu/include/module.modulemap"
end