{"id":21683408,"url":"https://github.com/stonestepsinc/isa-lib-crypto-nuget","last_synced_at":"2026-02-15T21:33:19.086Z","repository":{"id":152082728,"uuid":"625295926","full_name":"StoneStepsInc/isa-lib-crypto-nuget","owner":"StoneStepsInc","description":"Intel(R) Intelligent Storage Acceleration Library Crypto Version","archived":false,"fork":false,"pushed_at":"2026-01-24T21:09:20.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-25T07:42:22.866Z","etag":null,"topics":["library","md5","multi-buffer-hash","multi-hash","native","sha1","sha256","sha512","sm3"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StoneStepsInc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-08T17:09:35.000Z","updated_at":"2026-01-24T18:47:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"244ad483-070a-4a88-be4b-404e55371dbf","html_url":"https://github.com/StoneStepsInc/isa-lib-crypto-nuget","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/StoneStepsInc/isa-lib-crypto-nuget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneStepsInc%2Fisa-lib-crypto-nuget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneStepsInc%2Fisa-lib-crypto-nuget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneStepsInc%2Fisa-lib-crypto-nuget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneStepsInc%2Fisa-lib-crypto-nuget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StoneStepsInc","download_url":"https://codeload.github.com/StoneStepsInc/isa-lib-crypto-nuget/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneStepsInc%2Fisa-lib-crypto-nuget/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29490323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["library","md5","multi-buffer-hash","multi-hash","native","sha1","sha256","sha512","sm3"],"created_at":"2024-11-25T16:11:49.504Z","updated_at":"2026-02-15T21:33:19.079Z","avatar_url":"https://github.com/StoneStepsInc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## isa-l_crypto Nuget Package\r\n\r\nThis project builds an _isa-l_crypto_ Nuget package with static\r\n_isa-l_crypto_ libraries and header files  for the `x64` platform.\r\n\r\nVisit _isa-l_crypto_ website for additional information about the\r\n_isa-l_crypto_ project and library documentation:\r\n\r\nhttps://github.com/intel/isa-l_crypto\r\n\r\n## Package Configuration\r\n\r\nThis package contains static _isa-l_crypto_ libraries and header\r\nfiles for the x64 platform built with Visual C++ 2022, against\r\nDebug/Release MT/DLL MSVC CRT, using the following build options.\r\n\r\n    --   Shared libraries:     OFF\r\n    --   Build tests:          OFF\r\n    --   Build perf apps:      OFF\r\n    --   Safe data:            ON\r\n    --   Safe param:           ON\r\n    --   FIPS mode:            OFF\r\n\r\nThe _isa-l_crypto_ static libraries from this package will appear\r\nwithin the installation target project after the package is\r\ninstalled. The solution may need to be reloaded to make libraries\r\nvisible. Both, debug and release libraries will be listed in the\r\nproject, but only the one appropriate for the currently selected\r\nconfiguration will be included in the build. These libraries\r\nmay be moved into solution folders after the installation (e.g.\r\n`lib/Debug` and `lib/Release`).\r\n\r\nNote that the _isa-l_crypto_ library path in this package will\r\nbe selected as `Debug` or `Release` based on whether the selected\r\nconfiguration is designated as a development or as a release\r\nconfiguration via the standard Visual Studio property called\r\n`UseDebugLibraries`. Additional configurations copied from the\r\nstandard ones will inherit this property. \r\n\r\nDo not install this package if your projects use debug \r\nconfigurations without `UseDebugLibraries`. Note that CMake-generated\r\nVisual Studio projects will not emit this property.\r\n\r\n## Building a Nuget Package\r\n\r\nThis project can build a Nuget package for _isa-l_crypto_ either\r\nlocally or via a GitHub workflow. In each case, the following steps\r\nare taken.\r\n\r\n  * _isa-l_crypto_ source archive is downloaded from _isa-l_crypto_'s\r\n    website and its SHA-256 signature is verified.\r\n\r\n  * The source is patched to build in Visual C++ 2022.\r\n\r\n  * NASM (assembler) binaries package is downloaded from the\r\n    [NASM website][nasm.us] and its SHA-256 signature is verified.\r\n\r\n  * VS2022 Community Edition is used to build _isa-l_crypto_ libraries\r\n    locally and Enterprise Edition to build libraries on GitHub.\r\n\r\n  * Build artifacts for all platforms and configurations are\r\n    collected in staging directories under `nuget/build/native`.\r\n\r\n  * `nuget.exe` is used to package staged files with the first\r\n    three version components used as an _isa-l_crypto_ version and\r\n    the last version component used as a package revision. See\r\n    _Package Version_ section for more details.\r\n\r\n  * The Nuget package built on GitHub is uploaded to [nuget.org][].\r\n    The package built locally is saved in the root project\r\n    directory.\r\n\r\n## Package Version\r\n\r\n### Package Revision\r\n\r\nNuget packages lack package revision and in order to repackage\r\nthe same upstream software version, such as _isa-l_crypto_ v2.24.0,\r\nthe 4th component of the Nuget version is used to track the Nuget\r\npackage revision.\r\n\r\nNuget package revision is injected outside of the Nuget package\r\nconfiguration, during the package build process, and is not\r\npresent in the package specification file.\r\n\r\nSpecifically, `nuget.exe` is invoked with `-Version=2.24.0.123`\r\nto build a package with the revision `123`.\r\n\r\n### Version Locations\r\n\r\n_isa-l_crypto_ version is located in a few places in this repository\r\nand needs to be changed in all of them for a new version of _isa-l_crypto_.\r\n\r\n  * nuget/StoneSteps.IsaLibCrypto.VS2022.Static.nuspec (`version`)\r\n  * _devops/make-package.bat_ (`PKG_REL`, `PKG_VER`, `PKG_REV`,\r\n    `ISACRYPTO_SHA256`)\r\n  * _.github/workflows/nuget-isa-lib-crypto-\\{version\\}.yml_ (`name`,\r\n    `PKG_REL`, `PKG_VER`, `PKG_REV`, `ISACRYPTO_FNAME`, `ISACRYPTO_DNAME`,\r\n    `ISACRYPTO_SHA256`)\r\n\r\n`ISACRYPTO_SHA256` is a SHA-256 checksum of the _isa-l_crypto_ package\r\nfile and needs to be updated when a new version of _isa-l_crypto_ is\r\nreleased.\r\n\r\nNASM version is not coupled with _isa-l_crypto_'s version and needs\r\nto be updated only when _isa-l_crypto_ changes their minimum version\r\nrequirements.\r\n\r\nIn the GitHub workflow YAML, `PKG_REV` must be reset to `1` (one)\r\nevery time _isa-l_crypto_ version is changed. The workflow file\r\nmust be renamed with the new version in the name. This is necessary\r\nbecause GitHub maintains build numbers per workflow file name.\r\n\r\nFor local builds package revision is supplied on the command line\r\nand should be specified as `1` (one) for a new version of\r\n_isa-l_crypto_ and incremented with every package release for the\r\nsame upstream version.\r\n\r\n### GitHub Build Number\r\n\r\nBuild number within the GitHub workflow YAML is maintained in an\r\nunconventional way because of the lack of build maturity management\r\nbetween GitHub and Nuget.\r\n\r\nFor example, using build management systems, such as Artifactory,\r\nevery build would generate a Nuget package with the same version\r\nand package revision for the upcoming release and build numbers\r\nwould be tracked within the build management system. A build that\r\nwas successfully tested would be promoted to the production Nuget\r\nrepository without generating a new build.\r\n\r\nWithout a build management system, the GitHub workflow in this\r\nrepository uses the pre-release version as a surrogate build\r\nnumber for builds that do not publish packages to nuget.org,\r\nso these builds can be downloaded and tested before the final\r\nbuild is made and published to nuget.org. This approach is not\r\nrecommended for robust production environments because even\r\nthough the final published package is built from the exact\r\nsame source, the build process may still potentially introduce \r\nsome unknowns into the final package (e.g. build VM was updated).\r\n\r\n## Building Package Locally\r\n\r\nYou can build a Nuget package locally with `make-package.bat`\r\nlocated in `devops`. This script expects VS2022 Community Edition\r\ninstalled in the default location. If you have other edition of\r\nVisual Studio, edit the file to use the correct path to the\r\n`vcvarsall.bat` file.\r\n\r\nRun `make-package.bat` from the repository root directory with a\r\npackage revision as the first argument. There is no provision to\r\nmanage build numbers from the command line and other tools should\r\nbe used for this.\r\n\r\n## Sample Application\r\n\r\nA Visual Studio project is included in this repository under\r\n`sample-isa-lib-crypto` to test the Nuget package built by this\r\nproject. This application computes multi-hash and multi-buffer\r\nSHA256 checksums for input arguments.\r\n\r\nIn order to build `sample-isa-lib-crypto.exe`, open Nuget Package\r\nmanager in the solution and install either the locally-built Nuget\r\npackage or the one from [nuget.org][].\r\n\r\n[nuget.org]: https://www.nuget.org/packages/StoneSteps.IsaLibCrypto.VS2022.Static/\r\n[nasm.us]: https://www.nasm.us/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstonestepsinc%2Fisa-lib-crypto-nuget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstonestepsinc%2Fisa-lib-crypto-nuget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstonestepsinc%2Fisa-lib-crypto-nuget/lists"}