Implementation of a Generalized-Feistel Cipher for generating random permutations.
Project description
🎲 gfc — fast & lazy random permutations
gfc is a C implementation of a Generalized-Feistel Cipher [1, alg. 3] for generating random permutations.
It uses Speck 64/128 as the random function, and can generate permutations with up to 2^64
elements.
The permutation is computed, and reversed, on-the-fly, without any mutable state and by using very little memory.
Usage
C / C++
API
#include <gfc/gfc.h>
GFC* gfc_init(uint64_t range, uint64_t rounds, uint64_t seed);
void gfc_destroy(GFC* gfc);
uint64_t gfc_decrypt(const GFC* gfc, uint64_t m);
uint64_t gfc_encrypt(const GFC* gfc, uint64_t m);
Example
// main.c
// gcc -Iinclude/ src/gfc.c main.c -o main
#include <assert.h>
#include <gfc/gfc.h>
int main() {
GFC* gfc = gfc_init(65536, 6, 42);
for (uint64_t i = 0; i < 65536; i++) {
uint64_t enc = gfc_encrypt(gfc, i);
uint64_t dec = gfc_decrypt(gfc, enc);
assert(enc != i);
assert(dec == i);
}
gfc_destroy(gfc);
return 0;
}
CMake Integration
cmake_minimum_required(VERSION 3.12)
project(example)
add_subdirectory(gfc)
add_executable(main main.c)
target_link_libraries(main PRIVATE gfc)
git submodule add https://github.com/maxmouchet/gfc.git
mkdir build && cd build
cmake .. && cmake --build .
./main
Python
pip install pygfc
from pygfc import Permutation
# Permutation(range, rounds, seed)
perm = Permutation(2 ** 16, 8, 42)
assert set(perm) == set(range(2 ** 16))
assert all(perm.inv(perm[i]) == i for i in range(2 ** 16))
Dependencies
The Speck implementation is from madmo/speck and is licensed under the ISC license (MIT-compatible).
References
[1] Black, John, and Phillip Rogaway. "Ciphers with arbitrary finite domains." Cryptographers’ track at the RSA conference. Springer, Berlin, Heidelberg, 2002. https://web.cs.ucdavis.edu/~rogaway/papers/subset.pdf
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pygfc-1.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de9a8f435783e36378cba534794c86fedc3f46e92752a9402f606cc2f6eb4325 |
|
MD5 | 4e8fd705dac3ea737b525ffe5f1abd3c |
|
BLAKE2b-256 | 440e16060a2539125859bb74a1aca22826379c2f5f1d75a260dac3eb9bf4de9c |
Hashes for pygfc-1.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52e9f95ebebaa46bc3fefc37ead5d3cc74e0b7d68cce25bfd173db298608aa53 |
|
MD5 | e9b9e529944da869504799671335df11 |
|
BLAKE2b-256 | 16046d3b82026ce6a15cf146fc5a44f48f349e986a335c34abf3320932f29a78 |
Hashes for pygfc-1.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c99e4d25194d0f57200b1fd08a8cb697068da87bb0f2d247ce83f59e20f84be |
|
MD5 | 786c2fb5ca31f1bd2196c9a75a31cf5f |
|
BLAKE2b-256 | 0452810d32fe56c007ec887cce62849e2f4f13e0e4917791ff5d95a2bee50dd0 |
Hashes for pygfc-1.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 044154725478a310c5f1cff23b122b1f6202a9da697dab5d4f9d67116a23f6cd |
|
MD5 | dedf2231d9f58188ff07a01f5ea4a5da |
|
BLAKE2b-256 | c3af2c8b5faaa2887ad0ed0033fe59f62885ebdb73dddff6342c0575d42c7871 |
Hashes for pygfc-1.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe1e3adf0bfa70b0739eed50fa2b4477d90944cf83103f724362a21c2cb3a10a |
|
MD5 | 4601c90f49418e75ab63840171f61e45 |
|
BLAKE2b-256 | 82cc32e4ddfd6461543b647138c10b11b75986b0c94546333f3654a85b68f5c5 |
Hashes for pygfc-1.0.3-pp37-pypy37_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94c4e14f6877411b56693347a442b40bd2c3d9aec16b749e21adc78bad61a8fc |
|
MD5 | 9f943e0d91966ccdf4b4d90938b14260 |
|
BLAKE2b-256 | ac72f689b168eed79664c459b4646ce9e6a71834030e7f81ba45cbbeba15fde5 |
Hashes for pygfc-1.0.3-pp37-pypy37_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 189dc19b64d9cd14ce080eec93f64ec7431d48fa0fdee73bc483501656233b6a |
|
MD5 | 00037f9e2798f2cd230dbad37acf9206 |
|
BLAKE2b-256 | 94bc960754c867c37533deb14e5b582c933cf5375ad29f63a4258399cf019bdd |
Hashes for pygfc-1.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca6de6c521561456d59a3c76e25ca0044bed54a18dd8f79336998a29f512dff9 |
|
MD5 | c84c2caa79f893ec792bb1dc877dc8f4 |
|
BLAKE2b-256 | a8f700e25e9c7da020d3f72e8b53ec4cf4893b6a0a287807f8637066bcaa16d7 |
Hashes for pygfc-1.0.3-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5691d5270702e80be0be5367d3e1075808582e0e463759148854fcffb842df2b |
|
MD5 | b045e6522bf728fc41a2a4b78dfb3bc1 |
|
BLAKE2b-256 | 0bf5483a799217581017e717f9725f3d4ca0a978d5845e51d549b7aceeefc966 |
Hashes for pygfc-1.0.3-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44de09d785be92ea742369553d3e1afa55a7be3bcf82e9438e04820079975409 |
|
MD5 | 619ce861da5022f1c8a96229e98ed70e |
|
BLAKE2b-256 | f7ca27e8c39e15e91573b4fce3dd960fe749df87b8f7790ec39f04947aef68b3 |
Hashes for pygfc-1.0.3-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceb556a1c6672e665cec4f3b7e47b14755bcc256a85600f12e8092c6de3613b2 |
|
MD5 | 1582d93dad9fb9f2bce98a8281e75843 |
|
BLAKE2b-256 | dc02f3bddd5014fa5c92b7f3cbe68215c943b7593c44b1a5706b4b2106d558d3 |
Hashes for pygfc-1.0.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddffab76b1cbdf2a57771500c680dc087647b0232f2cef358135e5ebdb2979ce |
|
MD5 | 44590c4e08db3f72f0c5806f0b72180b |
|
BLAKE2b-256 | 9c07898b71c08eadf28a425392b2085f3e2a87667af57c6cfe5165e520dea2a3 |
Hashes for pygfc-1.0.3-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2b351eeff7f2108216f5af1a099c1232a91fa6bbb27afad2645d8f5b3b411e8 |
|
MD5 | 44f118970bc5d280cc07664afa26e3c4 |
|
BLAKE2b-256 | 7b4c54c6d6fa5e8871d764d600573da6edd64fe3a7cbfd2ffc5b413b90ce623f |
Hashes for pygfc-1.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 934fc45278c79ec8ffc033b9c5cd9d76c5ba4e1ac3bb4d86be50b66c55bb1bfa |
|
MD5 | e8ea2cf7a1f04bed362a85812414bc09 |
|
BLAKE2b-256 | 514f5e79f19a3cad3a30d958c5aefdcef460e919bb3e48a0c34a45a5440a1242 |
Hashes for pygfc-1.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3793a56ef173728c9ffafc66a9ded10f134ce10f23472fddbac8a9cde5a1cbe8 |
|
MD5 | b88d882a4bf3d2c7cb9c0a154e8b5029 |
|
BLAKE2b-256 | d3baf63bab6e399c1b867008e38168ec67f2af31e2f9e5dc7b8b6ebb9943017e |
Hashes for pygfc-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c42e3d662548928a7c3abb6a76b437b36af9dd393110db1b442737446345eb5f |
|
MD5 | cd3f1dafe2986eed83e0350b3875515c |
|
BLAKE2b-256 | 9836b8e722da6a9fab85a457a8c7ca8ded5e9dd60f3c28eac628d72f71a01f12 |
Hashes for pygfc-1.0.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d2a78fb2257aba91629239c8bcd63301db582ab93310d638c2a7c5167daa2df |
|
MD5 | 45f1eeedb8845d17fa9f0e3cb145a712 |
|
BLAKE2b-256 | b2e892ef168de7f2f22a843196105308a66c009f93505b0561f466a9b4d58572 |
Hashes for pygfc-1.0.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f569809c223a1c83ac9b9487d97d513a4fd581bd230e1ba0fc9a67c0cdef0bf4 |
|
MD5 | 58173e75aacb25b2eee5c0688113d959 |
|
BLAKE2b-256 | 24f72678563f4e66a187b3f21bd4b9350a507ff2caab359baf47571995a62720 |
Hashes for pygfc-1.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45423ac9bed81bfafc5e309939bf51db8d9a743aab501c0f3dd9cd4a32de0e36 |
|
MD5 | 3d8d0d3b900a1ebb2f7a7820ca21a2a2 |
|
BLAKE2b-256 | 367c508b2905e35f94375c0fb620165318f6961d5851ce54789aab1026b57b73 |
Hashes for pygfc-1.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21a8ec00bf0556d225e193fab2cbfa1878129fdb4bd554647353cee4c607e460 |
|
MD5 | 1e95d892b80f956e11c83d92aed7bb77 |
|
BLAKE2b-256 | 0bcaceb42bc77d024a0e15a6b4c8f7ef22ba5e52eef03c958930ba0afa451160 |
Hashes for pygfc-1.0.3-cp39-cp39-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5137d502c1683aaa409245db8b911d14462ca4fc870fe97c367f90ee7a3feac5 |
|
MD5 | c937ed46346238d6c175e9b64dd55c6e |
|
BLAKE2b-256 | d1750ec2be0f81a86e0089c495f31f0154f26cfd0332cc59ec40f3f5b174f518 |
Hashes for pygfc-1.0.3-cp39-cp39-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec4b89e811f4a5ead8fde9c1a5def4c762a75642c579062ca30e23e0297ea652 |
|
MD5 | 12ef475e725ba5c4a8c5e2d85bc38a36 |
|
BLAKE2b-256 | c461db29b5a834f168ee5d624a21e6630b821f142f114da806adc0e433259bd1 |
Hashes for pygfc-1.0.3-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 301a9b088c4ea5855db80dbebde9824b037fa5a4e7570384096f42b04f8a1e2f |
|
MD5 | 03956a861469a66c26f92fb3f929e36d |
|
BLAKE2b-256 | bb2ecf4ba93ea1c2e60dda8a090ca5006f538603d7b5f55929ea9dea7e2239e5 |
Hashes for pygfc-1.0.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecae389a2a3b9b16c57a8604f9d44a6bcf7c660433e8fb9757ec89f5ef9e1fe0 |
|
MD5 | 89caa80695cab6d22099c5714ff5dae3 |
|
BLAKE2b-256 | 7a92aa9267ea5c567c30ab4fe231444f1107385f03776836873e34a2e2529d82 |
Hashes for pygfc-1.0.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0769cd63b00f3324f13ee11cb59586b55a93274c0ef4daaa52422b83b400f1a5 |
|
MD5 | 7f1a9c36ac5a8f32f7d22a06dde44efc |
|
BLAKE2b-256 | 9d742285dc2f579f45c9c89de4de8e12df84ad501cd4bc354e0f695301834277 |
Hashes for pygfc-1.0.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd550e1368af102b494f26ff315506fc048ba4580ba2dae399339561ed79d2fa |
|
MD5 | 915b5f3deab3cf5cf13e862aa4bf280d |
|
BLAKE2b-256 | 3d739f671ef6dc27f1c2770ffe88478ba5f8d741d8faec5c300d889e2980d262 |
Hashes for pygfc-1.0.3-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 069328e794b79735ab2fff02190a3b017e12daf099d5653d72a223afee028f05 |
|
MD5 | 5f49c22aeaff6062115fb8065fa1653e |
|
BLAKE2b-256 | 4db98471d0b1d21df62e413a2f784b22604cad2c51b38dd7245a479b1f0883f7 |
Hashes for pygfc-1.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65c7600924a142eede065ba94d8107efabff6c0118c2d56c05464f5a8a0d071e |
|
MD5 | 6d1ffba81f0b2936c6d168821d122b78 |
|
BLAKE2b-256 | 1f8a9108f7ea58ee33ac4c62c671542dda992d03bef8014bbd0b60b5741f1598 |
Hashes for pygfc-1.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb7c333475e5dad9422411d60b05947573b6a60b47d7d40d70cfb6e1d9a089bc |
|
MD5 | d2375013a0d6930f2914bd252f19ac16 |
|
BLAKE2b-256 | c19a779482c27544deb86fa4520441c43ca9afb0ca9553d10b0a295ae3ef4c89 |
Hashes for pygfc-1.0.3-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c3581b44ec399a707f5dd2372ecdec2296b328113ae05fd18efb95529c3f1b5 |
|
MD5 | 768ccbb93a2f4a6fe3ef6d3a3f446ae1 |
|
BLAKE2b-256 | ca6633d581ec18279c0d529c1a9922e012da36d92e4b3ffec493c23cd34bec68 |
Hashes for pygfc-1.0.3-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18d7ff83c907b73c5c6a86f1340ec171de2c7572a364c482b858fd211085575a |
|
MD5 | 0428f8994112655dde7ca288fb8fe7c3 |
|
BLAKE2b-256 | 62ec05d88dc9f4957e023013fa0c1d21dda1e91f307341da12e89e607422cae5 |
Hashes for pygfc-1.0.3-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d488420c8d453ccd14f7f9a2050b6dafaa2b1e0ab9b86f5e26b0a45e7983973 |
|
MD5 | d7ef930bc02186e6bbe04507c3b210b3 |
|
BLAKE2b-256 | aec191c9ef2f5fcc99346ec1e437561c154d4947b6bc5e4267ae957105750c89 |
Hashes for pygfc-1.0.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddf454999f0221a72ad925bc5dc6c63ffeb7ec1d4270dd91ed6b05b0d1474ed9 |
|
MD5 | 67a4d0a60363cb496a02938707f02a77 |
|
BLAKE2b-256 | 41f07538e68c159878710d5a555bbf005acf45a1f460341c41e9dced6cbfa024 |
Hashes for pygfc-1.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edea3bfd815bea2b60ac28476a34a9729d6056a1e4fa22aa7e283fea1eff2858 |
|
MD5 | 9e566b8f2445b655f0f70725150ac512 |
|
BLAKE2b-256 | 3fe0b7c2878d00b8ba237fd2a154be38603d8515fe2e045b74bda491ae460f9e |
Hashes for pygfc-1.0.3-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e509975031a0762d3fb45254daccaf728521099e3bccc5f3df62fa6a5cb1aed8 |
|
MD5 | 4aa15930766fa101e63256d241cbe532 |
|
BLAKE2b-256 | 553e6116fc85e565d914033c885027c4214458de15d371dc7409ec565e755897 |
Hashes for pygfc-1.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2db588d68675fb6991ccf0210581d1dc7905d99e9e70ab732b205ed7cf78da1 |
|
MD5 | 72af2a06f1d7f41267f57c595490d88f |
|
BLAKE2b-256 | 73b47719084d3ca479f688e889131e0525d328cf85487dc60867f14dfc653fd5 |
Hashes for pygfc-1.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b1c21702d907b0ed5397ab92aac2d6a79791054cf1dbda8d72daf2c958678a2 |
|
MD5 | eb18cae5f5fabf545a1bb16be8767c70 |
|
BLAKE2b-256 | 08c11f3781e36a6fa76a4a9810296d9d571d9409b787d256b6db6468a5ceeb95 |
Hashes for pygfc-1.0.3-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 273eb9e63c145c4c7d91a2a3c9f47650663484337b188496e446ac77fc1e0a36 |
|
MD5 | ad9f8abf2d5c1c848a5e5e50b255a906 |
|
BLAKE2b-256 | a5065e4093c85f83e726426686a9d901533f46b0b2e50b0657730ad235c1af06 |
Hashes for pygfc-1.0.3-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 765158a98a49f343422aad57c4e480a48d576dfe65c749da6f4ae7b10a59312b |
|
MD5 | 52cf9c819b40a4461b47e452815d1eff |
|
BLAKE2b-256 | dac57ce36f39ece24380eb3c2e270610d3c6497937fbdaec05af732b9bcabfef |
Hashes for pygfc-1.0.3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06f66ad77bb35c1734ce9deb5ff36bae2f35c575f408be94fea869b5bfea66e2 |
|
MD5 | 05920ead39964b0c2fb43ae5889a3a1a |
|
BLAKE2b-256 | 38fcfe7715094dcb6a088f4bd4e48ea9f174e22c326158dbfd92ac8ca4f118bd |
Hashes for pygfc-1.0.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da179b03744225e76fc66e4119404b64af867d184379fb0c8477208fc1d07668 |
|
MD5 | b89ee4d766eba17fddee5a9c9c98fdfa |
|
BLAKE2b-256 | fcb65579df5611005e4d4fed5c2d09daf730489af1b4b27e14863f631fed132c |
Hashes for pygfc-1.0.3-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2578a6989516ba84c56dba0e2746352792e69a790dfa71a3e06a9f0fbfbe067c |
|
MD5 | e18297a492a7ef5d78529ebf71d19363 |
|
BLAKE2b-256 | 28a746771c3758dea37390f3c02a1ef39bff2d5ae414c5ecdf41eb559c260812 |
Hashes for pygfc-1.0.3-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78da3cafe51749efc4bcd92003147249cc7114810a1bc8bc455509019ac5f26a |
|
MD5 | cbbb109f4ec1e8a474e5e2bbe9b7a3fd |
|
BLAKE2b-256 | 8d39bc700c6bc5364a0a0aedae4285be7e108a63a05a5ae7e0be04f499e627cf |
Hashes for pygfc-1.0.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea9e642a0065172c56f0c3e3a734c819450f962296191ac15abc5a2cb191c804 |
|
MD5 | da25c7d96b962799f2ea32c745a93324 |
|
BLAKE2b-256 | 5450b44461793826b09c323a6d435f8e59eb456892810c1185cc712940b2e2e2 |
Hashes for pygfc-1.0.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4620c463bd31360fe73e7cf4a829121034e5d46ac56625633a14f5594657f3b6 |
|
MD5 | a1d04350052569c42c086d8829315bdb |
|
BLAKE2b-256 | 1b88d61b5501cdead8e4b1f6c9c47608beb7dba22a407e046ad75b6201c78597 |
Hashes for pygfc-1.0.3-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 483ce0b7010ceb67b068c2411b452cbe9c1f96ea63be06d96d6f3c7ad5ed67b6 |
|
MD5 | e37437db996fa3b545ccb9ae4f9b2c8f |
|
BLAKE2b-256 | daf9c44057e5cf2348868679a8c2e24004e65b07366399e3b81f849ed6176ea6 |
Hashes for pygfc-1.0.3-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 164d406137da5571a51de19ae7f1f63330cff35a3ec2b620a5bd8a946db4411b |
|
MD5 | 7bce19ec63cc96f7430f9d2d950847e6 |
|
BLAKE2b-256 | 9b5e98e158070d0b9bd16138ee620d8a5f79ecae446c3b09ff71df42496924f2 |
Hashes for pygfc-1.0.3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e46c61ff91789b344a3c263bee955be58d6b2d5e09ad107def0435a1392ccb2 |
|
MD5 | 59777242a3173e6f8d51e1c94068c4be |
|
BLAKE2b-256 | 1057466919d3932852740d3a7512ac04d96b4b13d69f9f2e2ff21b122afa6785 |
Hashes for pygfc-1.0.3-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdf2b88b7d775bb0ffe28ba57569ebc889763b61b56a5d7a14cece30c51165b2 |
|
MD5 | d3a3c2070b72254cb10cebe2e6b2827e |
|
BLAKE2b-256 | 1c85bd316a531471917bc7235267d5e12966460c29e5abf578906a1251ef2ab8 |