Comments (4)
At its core, Yori is still just a shell around functionality provided by a platform. Trying to move into the territory of implementing platform functionality would be a substantial extension, and it's not something that one person can really do by themselves.
Frankly, I'd be a terrible person to implement a crypto library. The real task here is taking an existing crypto library, and backporting it to run on an older compiler, operating system, and CPU. After that it still needs to be maintained, since crypto is an eternally evolving space.
Note that the core of the BCrypt.dll engine, which Yori is using, is now open sourced at https://github.com/microsoft/SymCrypt . It unfortunately doesn't directly expose the same interfaces as BCrypt.dll, but from Yori's point of view, the ideal thing would be to take that code, add BCrypt.dll exports, do all of the backporting, and end up with a drop-in BCrypt.dll for older systems. That not only enables Yori to work, but also enables other software that wants newer Windows crypto to work. That also means it's completely decoupled from any of the code here.
Agree that I should update the help text to indicate SHA1 is used by default.
from yori.
why not using Wincrypt? I think XP SP3 with CSP update capable of SHA-512 (not bad)
from yori.
With a couple of syntax changes to accommodate Open Watcom 2.0, I was able to build and run Microsoft's own example code for calculating MD5 checksums:
The binary seems to run fine under XP SP3 and NT 4.0 SP6.
NT 3.51 is too old and complains that the CryptAcquireContextA procedure is missing from ADVAPI32.DLL.
If you're using MSVC 2.0 then I suspect wincrypt.h is missing from the headers but maybe that's not too difficult to work around and conceivably a lot easier than wrestling with BCrypt.
(Obviously MD5 isn't perfect, but it's still useful.)
from yori.
Thanks, I didn't know these functions existed. Agree that if there's an option that exists on more versions, Yori should use it.
It doesn't matter much about working around missing header defines or exports. That already needed to exist for the Vista+ version anyway, so it's just about changing from one set of functions to another.
I have changes pending for this which I'll push soon. As you've already noted, MD5 and SHA1 exists on NT4+. SHA256/384/512 exists on XP SP3 and 2003 SP2. There's some hacking around requesting the "enhanced" provider which provides those hashes, but it's not too serious.
from yori.
Related Issues (20)
- Ctrl-C stops working after terminating GUI app once HOT 5
- Provide all installer options as command line arguments HOT 2
- Allow for a custom starting directory HOT 2
- Command line length limit in Yori ? Like 8191 in cmd ? HOT 2
- Implement long path pseudo current directory HOT 4
- Broken alias command for paths with spaces HOT 2
- Feature request: Option in Tee to remove color HOT 2
- yori's lsof breaks react-scripts HOT 3
- Yori installer for the arm64 Windows HOT 4
- current version -- 2.0 is marked as infected with a trojan by Windows Defender HOT 3
- yenv: accept variable from stdin HOT 4
- "cab.exe -s -u" does not overwrite files with read-only and system attributes set HOT 2
- "ycopy.exe -p" raises ERRORLEVEL to 1 if there is nothing to overwrite HOT 1
- Can't run Notepad HOT 2
- YoriInit.ys1 script %__APPDIR__% and %__CD__% environment variables on Windows XP HOT 2
- throw er; // Unhandled 'error' event HOT 2
- fail to install yori-core on amd HOT 2
- ConEmu + Clink + Yori + Python + xonsh = surprise XD HOT 2
- CD Improvement HOT 2
- feature request: DIR /W multi-column filename-only view HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yori.