luigoalma / haccrypto Goto Github PK
View Code? Open in Web Editor NEWNintendo Switch XTSN crypto for Python
License: MIT License
Nintendo Switch XTSN crypto for Python
License: MIT License
This would need to detect and load an ARM64 OpenSSL DLL, libcrypto-1_1-arm64.dll
libcrypto needs to be updated to have x86_64/arm64 slices.
I was tying to install ninfs
(ihaveamac/ninfs#101), and this package is a dependency of it. It doesn't compile with gcc 13.1:
LC_ALL=C gcc --version
gcc (GCC) 13.1.1 20230429
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
LC_ALL=C pip install ninfs==2.0a9
Defaulting to user installation because normal site-packages is not writeable
Collecting ninfs==2.0a9
Using cached ninfs-2.0a9-py3-none-any.whl (1.2 MB)
Requirement already satisfied: pycryptodomex<4,>=3.9 in /usr/lib/python3.11/site-packages (from ninfs==2.0a9) (3.12.0)
Collecting pyctr<0.7,>=0.5.1 (from ninfs==2.0a9)
Using cached pyctr-0.6.0-py3-none-any.whl (76 kB)
Collecting haccrypto>=0.1 (from ninfs==2.0a9)
Using cached haccrypto-0.1.2.tar.gz (4.7 MB)
Preparing metadata (setup.py) ... done
Collecting pypng>=0.0.21 (from ninfs==2.0a9)
Using cached pypng-0.20220715.0-py3-none-any.whl (58 kB)
Building wheels for collected packages: haccrypto
Building wheel for haccrypto (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [40 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/haccrypto
copying haccrypto/crypto.py -> build/lib.linux-x86_64-cpython-311/haccrypto
copying haccrypto/__init__.py -> build/lib.linux-x86_64-cpython-311/haccrypto
copying haccrypto/openssl-license.txt -> build/lib.linux-x86_64-cpython-311/haccrypto
running build_ext
building 'haccrypto._crypto' extension
creating build/temp.linux-x86_64-cpython-311
creating build/temp.linux-x86_64-cpython-311/haccrypto
gcc -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -ffat-lto-objects -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -fPIC -I/usr/include/python3.11 -c haccrypto/_crypto.cpp -o build/temp.linux-x86_64-cpython-311/haccrypto/_crypto.o -O3 -std=c++11
haccrypto/_crypto.cpp:125:17: error: 'string' in namespace 'std' does not name a type
125 | static std::string GetPathByAddress(const void* addr) {
| ^~~~~~
haccrypto/_crypto.cpp:29:1: note: 'std::string' is defined in header '<string>'; did you forget to '#include <string>'?
28 | #include <dlfcn.h>
+++ |+#include <string>
29 | #define __ldl__ 1
haccrypto/_crypto.cpp: In function 'void load_lcrypto()':
haccrypto/_crypto.cpp:549:14: error: 'string' is not a member of 'std'
549 | std::string *paths[2] = {nullptr, nullptr};
| ^~~~~~
haccrypto/_crypto.cpp:549:14: note: 'std::string' is defined in header '<string>'; did you forget to '#include <string>'?
haccrypto/_crypto.cpp:549:22: error: 'paths' was not declared in this scope
549 | std::string *paths[2] = {nullptr, nullptr};
| ^~~~~
haccrypto/_crypto.cpp:550:14: error: 'string' is not a member of 'std'
550 | std::string modulepath("");
| ^~~~~~
haccrypto/_crypto.cpp:550:14: note: 'std::string' is defined in header '<string>'; did you forget to '#include <string>'?
haccrypto/_crypto.cpp:552:13: error: 'modulepath' was not declared in this scope
552 | modulepath = DynamicHelper::GetPathByAddress((const void * )&load_lcrypto);
| ^~~~~~~~~~
haccrypto/_crypto.cpp:552:41: error: 'GetPathByAddress' is not a member of 'DynamicHelper'
552 | modulepath = DynamicHelper::GetPathByAddress((const void * )&load_lcrypto);
| ^~~~~~~~~~~~~~~~
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for haccrypto
Running setup.py clean for haccrypto
Failed to build haccrypto
ERROR: Could not build wheels for haccrypto, which is required to install pyproject.toml-based projects
not really much else to say other than this makes #4 still effective.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.