{"id":17694812,"url":"https://github.com/chardoncs/libpgfe","last_synced_at":"2025-03-12T22:33:02.195Z","repository":{"id":59446473,"uuid":"524551050","full_name":"chardoncs/libpgfe","owner":"chardoncs","description":"Experimental cryptographic \u0026 OTP library","archived":true,"fork":false,"pushed_at":"2024-09-03T06:27:32.000Z","size":485,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T03:06:31.336Z","etag":null,"topics":["base-encoding","cryptographic-library","cryptography","hash","hotp","otp","otp-library","sha","totp"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chardoncs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-08-14T02:05:15.000Z","updated_at":"2025-01-01T01:38:32.000Z","dependencies_parsed_at":"2024-10-24T16:49:13.575Z","dependency_job_id":"d7d49597-67be-4035-98fe-6dcfc39becf4","html_url":"https://github.com/chardoncs/libpgfe","commit_stats":null,"previous_names":["chardoncs/libpgfe"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chardoncs%2Flibpgfe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chardoncs%2Flibpgfe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chardoncs%2Flibpgfe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chardoncs%2Flibpgfe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chardoncs","download_url":"https://codeload.github.com/chardoncs/libpgfe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243307050,"owners_count":20270253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["base-encoding","cryptographic-library","cryptography","hash","hotp","otp","otp-library","sha","totp"],"created_at":"2024-10-24T13:49:47.971Z","updated_at":"2025-03-12T22:33:01.855Z","avatar_url":"https://github.com/chardoncs.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libpgfe\n\n![Version](https://img.shields.io/github/v/tag/chardon55/libpgfe?color=brightgreen\u0026label=version)\n![License](https://img.shields.io/github/license/chardon55/libpgfe)\n\n## Introduction\n\n**libpgfe** (IPA: /[ˌlɪbˈpɪɡfiː](http://ipa-reader.xyz/?text=%CB%8Cl%C9%AAb%CB%88p%C9%AA%C9%A1fi%CB%90)/, respelling: \"lib-PIG-fee\") is a free and open-source cryptographic library focusing on flexibility and easy-to-access interfaces, which is written in [C](https://en.wikipedia.org/wiki/C_(programming_language)) and [C++](https://en.wikipedia.org/wiki/C%2B%2B).\n\n*libpgfe* currently supports hash encoding (e.g. SHA256, MD5), HMAC encoding, HOTP/TOTP, Base 16/32/64 and Blowfish.\n\n*libpgfe* is currently under heavy development, more features and optimization will be added in the future.\n\n| Entry        | Info                |\n| :----------- | :------------------ |\n| C Standard   | [C11 (ISO/IEC 9899:2011)](https://en.wikipedia.org/wiki/C11_(C_standard_revision))  |\n| C++ Standard | [C++14 (ISO/IEC 14882:2014)](https://en.wikipedia.org/wiki/C++14) |\n| Compiler     | LLVM Clang          |\n| License      | MIT    |\n\n[*Any questions?*](.github/qna.md)\n\n## [Endianness (Byte order)](https://en.wikipedia.org/wiki/Endianness)\n\nThe implementation philosophy of *libpgfe* assumes that the systems running this library are **Little Endian**, since it is widely used by architectures and OS. Therefore, this library should not run properly on Big Endian systems.\n\n## Tips for compilation\n\n### Compilers\n\nIt is suggested to use latest [LLVM](https://llvm.org/) or [GCC](https://gcc.gnu.org/) to compile this project. **Using [MSVC](https://en.wikipedia.org/wiki/Microsoft_Visual_C++) is not tested and will probably cause compilation failure.**\n\n| Compiler   | Suggested version |\n| :--------- | :---------------- |\n| LLVM Clang | 11.0+             |\n| GCC        | 9.0+              |\n\n### Build tools\n\nCMake is needed to compile the project.\n\n## Implementation Reference\n\n### Standards\n\nThe standards that are followed in this library are shown below.\n\n| Algorithm                     | Standard                                            |\n| :---------------------------- | :-------------------------------------------------- |\n| Base 16/32/64                 | [RFC 4648](https://doi.org/10.17487/RFC4648) |\n| Blowfish                      | [DOI: 10.1007/3-540-58108-1_24](https://doi.org/10.1007/3-540-58108-1_24) |\n| HMAC                          | [RFC 2104](https://doi.org/10.17487/RFC2104)\u003cbr\u003e[RFC 6151](https://doi.org/10.17487/RFC6151) |\n| HOTP                          | [RFC 4226](https://doi.org/10.17487/RFC4226) |\n| MD5                           | [RFC 1321](https://doi.org/10.17487/RFC1321)\u003cbr\u003eRFC 6151 |\n| SHA-1                         | [RFC 3174](https://doi.org/10.17487/RFC3174)\u003cbr\u003e[RFC 6234](https://doi.org/10.17487/RFC6234) |\n| SHA-2 Family                  | RFC 6234\u003cbr\u003e[NIST FIPS 180-4 (Aug. 2015 ver.)](https://doi.org/10.6028/NIST.FIPS.180-4) |\n| SHA-3/SHAKE Family (Revised [Keccak](https://keccak.team/keccak.html)) | [NIST FIPS 202](https://doi.org/10.6028/NIST.FIPS.202) |\n| TOTP                          | [RFC 6238](https://doi.org/10.17487/RFC6238) |\n\n### Implementation instances\n\nMeanwhile, some existing implementation repositories are referenced for the development.\n\n| Algorithm                     | Reference                                           |\n| :---------------------------- | :-------------------------------------------------- |\n| Blowfish                      | [Reference source code](https://www.schneier.com/academic/blowfish/download/) |\n| SHA-3/SHAKE Family            | [Keccak-NIST Reference Implementation](https://csrc.nist.gov/projects/hash-functions/sha-3-project)\u003cbr\u003e[Fackelmann/SHA3](https://github.com/Fackelmann/SHA3)\u003cbr\u003e[brainhub/SHU3IUF](https://github.com/brainhub/SHA3IUF)\u003cbr\u003e[mjosaarinen/tiny_sha3](https://github.com/mjosaarinen/tiny_sha3) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchardoncs%2Flibpgfe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchardoncs%2Flibpgfe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchardoncs%2Flibpgfe/lists"}