ruby_nacl 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changelog +0 -0
- data/README.md +49 -0
- data/ext/ruby_nacl/NaCl/MACROS +56 -0
- data/ext/ruby_nacl/NaCl/OPERATIONS +11 -0
- data/ext/ruby_nacl/NaCl/PROTOTYPES.c +26 -0
- data/ext/ruby_nacl/NaCl/PROTOTYPES.cpp +17 -0
- data/ext/ruby_nacl/NaCl/README +1 -0
- data/ext/ruby_nacl/NaCl/commandline/nacl-sha256.c +64 -0
- data/ext/ruby_nacl/NaCl/commandline/nacl-sha512.c +64 -0
- data/ext/ruby_nacl/NaCl/cpucycles/alpha.c +80 -0
- data/ext/ruby_nacl/NaCl/cpucycles/alpha.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuinfo.c +16 -0
- data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuinfo.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuspeed.c +25 -0
- data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuspeed.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/amd64tscfreq.c +18 -0
- data/ext/ruby_nacl/NaCl/cpucycles/amd64tscfreq.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/celllinux.c +83 -0
- data/ext/ruby_nacl/NaCl/cpucycles/celllinux.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/cortex.c +73 -0
- data/ext/ruby_nacl/NaCl/cpucycles/cortex.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/dev4ns.c +62 -0
- data/ext/ruby_nacl/NaCl/cpucycles/dev4ns.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/do +105 -0
- data/ext/ruby_nacl/NaCl/cpucycles/gettimeofday.c +32 -0
- data/ext/ruby_nacl/NaCl/cpucycles/gettimeofday.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/hppapstat.c +26 -0
- data/ext/ruby_nacl/NaCl/cpucycles/hppapstat.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/ia64cpuinfo.c +15 -0
- data/ext/ruby_nacl/NaCl/cpucycles/ia64cpuinfo.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/mips.c +65 -0
- data/ext/ruby_nacl/NaCl/cpucycles/mips.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/monotonic.c +34 -0
- data/ext/ruby_nacl/NaCl/cpucycles/monotonic.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/monotoniccpuinfo.c +33 -0
- data/ext/ruby_nacl/NaCl/cpucycles/monotoniccpuinfo.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/osfreq.c +65 -0
- data/ext/ruby_nacl/NaCl/cpucycles/powerpccpuinfo.c +95 -0
- data/ext/ruby_nacl/NaCl/cpucycles/powerpccpuinfo.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/powerpcmacos.c +42 -0
- data/ext/ruby_nacl/NaCl/cpucycles/powerpcmacos.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/sgi.c +38 -0
- data/ext/ruby_nacl/NaCl/cpucycles/sgi.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/sparc32cpuinfo.c +16 -0
- data/ext/ruby_nacl/NaCl/cpucycles/sparc32cpuinfo.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/sparccpuinfo.c +15 -0
- data/ext/ruby_nacl/NaCl/cpucycles/sparccpuinfo.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/test.c +77 -0
- data/ext/ruby_nacl/NaCl/cpucycles/x86cpuinfo.c +15 -0
- data/ext/ruby_nacl/NaCl/cpucycles/x86cpuinfo.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/x86cpuspeed.c +24 -0
- data/ext/ruby_nacl/NaCl/cpucycles/x86cpuspeed.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/x86estimate.c +59 -0
- data/ext/ruby_nacl/NaCl/cpucycles/x86estimate.h +27 -0
- data/ext/ruby_nacl/NaCl/cpucycles/x86tscfreq.c +17 -0
- data/ext/ruby_nacl/NaCl/cpucycles/x86tscfreq.h +27 -0
- data/ext/ruby_nacl/NaCl/cpuid/cbytes.c +16 -0
- data/ext/ruby_nacl/NaCl/cpuid/cpuid.c +41 -0
- data/ext/ruby_nacl/NaCl/cpuid/do +37 -0
- data/ext/ruby_nacl/NaCl/cpuid/unknown.c +7 -0
- data/ext/ruby_nacl/NaCl/cpuid/x86.c +41 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/hmac.c +83 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/verify.c +9 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/hmac.c +86 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/verify.c +9 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/selected +0 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/measure.c +69 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/try.c +119 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/wrapper-auth.cpp +11 -0
- data/ext/ruby_nacl/NaCl/crypto_auth/wrapper-verify.cpp +14 -0
- data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/after.c +22 -0
- data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/api.h +6 -0
- data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/before.c +17 -0
- data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/box.c +27 -0
- data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/keypair.c +12 -0
- data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/selected +0 -0
- data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_box/measure.c +137 -0
- data/ext/ruby_nacl/NaCl/crypto_box/try.c +195 -0
- data/ext/ruby_nacl/NaCl/crypto_box/wrapper-box.cpp +24 -0
- data/ext/ruby_nacl/NaCl/crypto_box/wrapper-keypair.cpp +12 -0
- data/ext/ruby_nacl/NaCl/crypto_box/wrapper-open.cpp +27 -0
- data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/api.h +4 -0
- data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/core.c +135 -0
- data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/api.h +4 -0
- data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/core.c +108 -0
- data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_core/measure.c +18 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa20/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/api.h +4 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/core.c +134 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa20/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/api.h +4 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/core.c +134 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa208/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/api.h +4 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/core.c +134 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_core/salsa208/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_core/try.c +116 -0
- data/ext/ruby_nacl/NaCl/crypto_core/wrapper-empty.cpp +0 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/measure.c +66 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha256/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/api.h +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/hash.c +69 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha256/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha512/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/api.h +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/hash.c +71 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha512/selected +0 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/sha512/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/try.c +77 -0
- data/ext/ruby_nacl/NaCl/crypto_hash/wrapper-hash.cpp +10 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/measure.c +18 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/blocks.c +228 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/blocks.c +212 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/blocks.c +256 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/blocks.c +239 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/selected +0 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/try.c +79 -0
- data/ext/ruby_nacl/NaCl/crypto_hashblocks/wrapper-empty.cpp +0 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/measure.c +69 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/auth.c +1616 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/verify.c +9 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/auth.s +2787 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/constants.s +85 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/verify.c +9 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/auth.c +104 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/verify.c +9 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/selected +0 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/auth.s +2779 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/constants.s +85 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/verify.c +9 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/try.c +119 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/wrapper-auth.cpp +11 -0
- data/ext/ruby_nacl/NaCl/crypto_onetimeauth/wrapper-verify.cpp +14 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/base.c +8 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/const.s +114 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/fromdouble.s +195 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/init.s +13 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/mainloop.s +3990 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/mult.s +410 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/smult.c +91 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/square.s +298 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/todouble.s +144 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/base.c +8 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/smult.c +477 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/base.c +16 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/smult.c +265 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/measure.c +61 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/try.c +126 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/wrapper-base.cpp +11 -0
- data/ext/ruby_nacl/NaCl/crypto_scalarmult/wrapper-mult.cpp +12 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/measure.c +75 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/try.c +129 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/wrapper-box.cpp +19 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/wrapper-open.cpp +22 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/ref/api.h +4 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/ref/box.c +35 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/selected +0 -0
- data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/api.h +3 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/fe25519.c +345 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/fe25519.h +54 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/ge25519.c +227 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/ge25519.h +34 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sc25519.c +146 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sc25519.h +51 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sign.c +103 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/selected +0 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/measure.c +83 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/try.c +86 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-keypair.cpp +12 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-sign-open.cpp +24 -0
- data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-sign.cpp +23 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/afternm.s +12308 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/api.h +3 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/beforenm.s +13694 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/stream.c +14 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/xor.c +15 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/xor_afternm.s +12407 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/afternm.c +158 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/api.h +3 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/beforenm.c +59 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/common.c +64 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/common.h +788 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/consts.c +14 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/consts.h +28 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/int128.c +128 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/int128.h +47 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/stream.c +28 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/types.h +10 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/xor_afternm.c +180 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/measure.c +73 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/stream.s +4823 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/stream.c +49 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/xor.c +52 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/stream.s +5078 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/stream.s +4823 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/stream.c +49 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/xor.c +52 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/stream.s +5078 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/stream.s +4823 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/stream.c +49 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/xor.c +52 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/stream.s +5078 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/try.c +124 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/wrapper-stream.cpp +12 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/wrapper-xor.cpp +17 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/api.h +2 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/implementors +1 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/stream.c +22 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/xor.c +23 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/selected +0 -0
- data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_stream.h +18 -0
- data/ext/ruby_nacl/NaCl/crypto_stream_aes128ctr.h +33 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/16/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/16/ref/api.h +1 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/16/ref/verify.c +24 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/16/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/32/checksum +1 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/32/ref/api.h +1 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/32/ref/verify.c +40 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/32/used +0 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/measure.c +18 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/try.c +75 -0
- data/ext/ruby_nacl/NaCl/crypto_verify/wrapper-empty.cpp +0 -0
- data/ext/ruby_nacl/NaCl/curvecp/LIBS +31 -0
- data/ext/ruby_nacl/NaCl/curvecp/README +10 -0
- data/ext/ruby_nacl/NaCl/curvecp/SOURCES +36 -0
- data/ext/ruby_nacl/NaCl/curvecp/TARGETS +5 -0
- data/ext/ruby_nacl/NaCl/curvecp/blocking.c +12 -0
- data/ext/ruby_nacl/NaCl/curvecp/blocking.h +7 -0
- data/ext/ruby_nacl/NaCl/curvecp/byte.h +8 -0
- data/ext/ruby_nacl/NaCl/curvecp/byte_copy.c +8 -0
- data/ext/ruby_nacl/NaCl/curvecp/byte_isequal.c +10 -0
- data/ext/ruby_nacl/NaCl/curvecp/byte_zero.c +7 -0
- data/ext/ruby_nacl/NaCl/curvecp/crypto_block.c +35 -0
- data/ext/ruby_nacl/NaCl/curvecp/crypto_block.h +4 -0
- data/ext/ruby_nacl/NaCl/curvecp/curvecpclient.c +476 -0
- data/ext/ruby_nacl/NaCl/curvecp/curvecpmakekey.c +57 -0
- data/ext/ruby_nacl/NaCl/curvecp/curvecpmessage.c +654 -0
- data/ext/ruby_nacl/NaCl/curvecp/curvecpprintkey.c +46 -0
- data/ext/ruby_nacl/NaCl/curvecp/curvecpserver.c +497 -0
- data/ext/ruby_nacl/NaCl/curvecp/die.c +42 -0
- data/ext/ruby_nacl/NaCl/curvecp/die.h +16 -0
- data/ext/ruby_nacl/NaCl/curvecp/e.c +106 -0
- data/ext/ruby_nacl/NaCl/curvecp/e.h +438 -0
- data/ext/ruby_nacl/NaCl/curvecp/hexparse.c +25 -0
- data/ext/ruby_nacl/NaCl/curvecp/hexparse.h +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/load.c +33 -0
- data/ext/ruby_nacl/NaCl/curvecp/load.h +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/nameparse.c +19 -0
- data/ext/ruby_nacl/NaCl/curvecp/nameparse.h +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/nanoseconds.c +27 -0
- data/ext/ruby_nacl/NaCl/curvecp/nanoseconds.h +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/open.h +10 -0
- data/ext/ruby_nacl/NaCl/curvecp/open_cwd.c +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/open_lock.c +19 -0
- data/ext/ruby_nacl/NaCl/curvecp/open_pipe.c +15 -0
- data/ext/ruby_nacl/NaCl/curvecp/open_read.c +17 -0
- data/ext/ruby_nacl/NaCl/curvecp/open_write.c +17 -0
- data/ext/ruby_nacl/NaCl/curvecp/portparse.c +14 -0
- data/ext/ruby_nacl/NaCl/curvecp/portparse.h +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/randommod.c +14 -0
- data/ext/ruby_nacl/NaCl/curvecp/randommod.h +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/safenonce.c +74 -0
- data/ext/ruby_nacl/NaCl/curvecp/safenonce.h +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/savesync.c +24 -0
- data/ext/ruby_nacl/NaCl/curvecp/savesync.h +6 -0
- data/ext/ruby_nacl/NaCl/curvecp/socket.h +9 -0
- data/ext/ruby_nacl/NaCl/curvecp/socket_bind.c +15 -0
- data/ext/ruby_nacl/NaCl/curvecp/socket_recv.c +23 -0
- data/ext/ruby_nacl/NaCl/curvecp/socket_send.c +19 -0
- data/ext/ruby_nacl/NaCl/curvecp/socket_udp.c +36 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint16_pack.c +7 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint16_pack.h +8 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint16_unpack.c +9 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint16_unpack.h +8 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint32_pack.c +9 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint32_pack.h +8 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint32_unpack.c +11 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint32_unpack.h +8 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint64_pack.c +13 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint64_pack.h +8 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint64_unpack.c +15 -0
- data/ext/ruby_nacl/NaCl/curvecp/uint64_unpack.h +8 -0
- data/ext/ruby_nacl/NaCl/curvecp/writeall.c +27 -0
- data/ext/ruby_nacl/NaCl/curvecp/writeall.h +6 -0
- data/ext/ruby_nacl/NaCl/do +468 -0
- data/ext/ruby_nacl/NaCl/inttypes/crypto_int16.c +3 -0
- data/ext/ruby_nacl/NaCl/inttypes/crypto_int32.c +3 -0
- data/ext/ruby_nacl/NaCl/inttypes/crypto_int64.c +3 -0
- data/ext/ruby_nacl/NaCl/inttypes/crypto_int8.c +3 -0
- data/ext/ruby_nacl/NaCl/inttypes/crypto_uint16.c +3 -0
- data/ext/ruby_nacl/NaCl/inttypes/crypto_uint32.c +3 -0
- data/ext/ruby_nacl/NaCl/inttypes/crypto_uint64.c +3 -0
- data/ext/ruby_nacl/NaCl/inttypes/crypto_uint8.c +3 -0
- data/ext/ruby_nacl/NaCl/inttypes/do +47 -0
- data/ext/ruby_nacl/NaCl/inttypes/signed.h +17 -0
- data/ext/ruby_nacl/NaCl/inttypes/unsigned.h +17 -0
- data/ext/ruby_nacl/NaCl/measure-anything.c +225 -0
- data/ext/ruby_nacl/NaCl/okcompilers/abiname.c +45 -0
- data/ext/ruby_nacl/NaCl/okcompilers/archivers +2 -0
- data/ext/ruby_nacl/NaCl/okcompilers/c +8 -0
- data/ext/ruby_nacl/NaCl/okcompilers/cpp +8 -0
- data/ext/ruby_nacl/NaCl/okcompilers/do +196 -0
- data/ext/ruby_nacl/NaCl/okcompilers/lib.c +29 -0
- data/ext/ruby_nacl/NaCl/okcompilers/lib.cpp +19 -0
- data/ext/ruby_nacl/NaCl/okcompilers/main.c +25 -0
- data/ext/ruby_nacl/NaCl/okcompilers/main.cpp +22 -0
- data/ext/ruby_nacl/NaCl/randombytes/devurandom.c +34 -0
- data/ext/ruby_nacl/NaCl/randombytes/devurandom.h +24 -0
- data/ext/ruby_nacl/NaCl/randombytes/do +43 -0
- data/ext/ruby_nacl/NaCl/randombytes/test.c +15 -0
- data/ext/ruby_nacl/NaCl/tests/auth.c +19 -0
- data/ext/ruby_nacl/NaCl/tests/auth.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/auth2.c +34 -0
- data/ext/ruby_nacl/NaCl/tests/auth2.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/auth3.c +34 -0
- data/ext/ruby_nacl/NaCl/tests/auth3.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/auth4.cpp +44 -0
- data/ext/ruby_nacl/NaCl/tests/auth4.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/auth5.c +36 -0
- data/ext/ruby_nacl/NaCl/tests/auth5.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/auth6.cpp +46 -0
- data/ext/ruby_nacl/NaCl/tests/auth6.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/box.c +63 -0
- data/ext/ruby_nacl/NaCl/tests/box.out +19 -0
- data/ext/ruby_nacl/NaCl/tests/box2.c +64 -0
- data/ext/ruby_nacl/NaCl/tests/box2.out +17 -0
- data/ext/ruby_nacl/NaCl/tests/box3.cpp +60 -0
- data/ext/ruby_nacl/NaCl/tests/box3.out +19 -0
- data/ext/ruby_nacl/NaCl/tests/box4.cpp +66 -0
- data/ext/ruby_nacl/NaCl/tests/box4.out +17 -0
- data/ext/ruby_nacl/NaCl/tests/box5.cpp +30 -0
- data/ext/ruby_nacl/NaCl/tests/box5.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/box6.cpp +43 -0
- data/ext/ruby_nacl/NaCl/tests/box6.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/box7.c +36 -0
- data/ext/ruby_nacl/NaCl/tests/box7.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/box8.c +41 -0
- data/ext/ruby_nacl/NaCl/tests/box8.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/core1.c +30 -0
- data/ext/ruby_nacl/NaCl/tests/core1.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/core2.c +33 -0
- data/ext/ruby_nacl/NaCl/tests/core2.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/core3.c +41 -0
- data/ext/ruby_nacl/NaCl/tests/core3.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/core4.c +33 -0
- data/ext/ruby_nacl/NaCl/tests/core4.out +8 -0
- data/ext/ruby_nacl/NaCl/tests/core5.c +32 -0
- data/ext/ruby_nacl/NaCl/tests/core5.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/core6.c +47 -0
- data/ext/ruby_nacl/NaCl/tests/core6.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/hash.c +14 -0
- data/ext/ruby_nacl/NaCl/tests/hash.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/hash2.cpp +18 -0
- data/ext/ruby_nacl/NaCl/tests/hash2.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/hash3.c +14 -0
- data/ext/ruby_nacl/NaCl/tests/hash3.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/hash4.cpp +18 -0
- data/ext/ruby_nacl/NaCl/tests/hash4.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth.c +42 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth.out +2 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth2.c +40 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth2.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth5.cpp +46 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth5.out +2 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth6.cpp +50 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth6.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth7.c +36 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth7.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth8.cpp +46 -0
- data/ext/ruby_nacl/NaCl/tests/onetimeauth8.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult.c +23 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult2.c +23 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult2.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult3.cpp +31 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult3.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult4.cpp +31 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult4.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult5.c +30 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult5.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult6.c +30 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult6.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult7.cpp +32 -0
- data/ext/ruby_nacl/NaCl/tests/scalarmult7.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox.c +56 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox.out +19 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox2.c +57 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox2.out +17 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox3.cpp +52 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox3.out +19 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox4.cpp +54 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox4.out +17 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox5.cpp +29 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox5.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox6.cpp +42 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox6.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox7.c +32 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox7.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox8.c +37 -0
- data/ext/ruby_nacl/NaCl/tests/secretbox8.out +0 -0
- data/ext/ruby_nacl/NaCl/tests/stream.c +29 -0
- data/ext/ruby_nacl/NaCl/tests/stream.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/stream2.c +27 -0
- data/ext/ruby_nacl/NaCl/tests/stream2.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/stream3.c +28 -0
- data/ext/ruby_nacl/NaCl/tests/stream3.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/stream4.c +53 -0
- data/ext/ruby_nacl/NaCl/tests/stream4.out +17 -0
- data/ext/ruby_nacl/NaCl/tests/stream5.cpp +29 -0
- data/ext/ruby_nacl/NaCl/tests/stream5.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/stream6.cpp +27 -0
- data/ext/ruby_nacl/NaCl/tests/stream6.out +1 -0
- data/ext/ruby_nacl/NaCl/tests/stream7.cpp +30 -0
- data/ext/ruby_nacl/NaCl/tests/stream7.out +4 -0
- data/ext/ruby_nacl/NaCl/tests/stream8.cpp +56 -0
- data/ext/ruby_nacl/NaCl/tests/stream8.out +17 -0
- data/ext/ruby_nacl/NaCl/try-anything.c +173 -0
- data/ext/ruby_nacl/NaCl/version +1 -0
- data/ext/ruby_nacl/extconf.rb +18 -0
- data/ext/ruby_nacl/ruby_nacl.cpp +147 -0
- data/ext/ruby_nacl/ruby_nacl.h +49 -0
- metadata +554 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* crypto_stream/try.c version 20090118
|
|
3
|
+
* D. J. Bernstein
|
|
4
|
+
* Public domain.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#include <stdlib.h>
|
|
8
|
+
#include "crypto_stream.h"
|
|
9
|
+
|
|
10
|
+
extern unsigned char *alignedcalloc(unsigned long long);
|
|
11
|
+
|
|
12
|
+
const char *primitiveimplementation = crypto_stream_IMPLEMENTATION;
|
|
13
|
+
|
|
14
|
+
#define MAXTEST_BYTES 10000
|
|
15
|
+
#define CHECKSUM_BYTES 4096
|
|
16
|
+
#define TUNE_BYTES 1536
|
|
17
|
+
|
|
18
|
+
static unsigned char *k;
|
|
19
|
+
static unsigned char *n;
|
|
20
|
+
static unsigned char *m;
|
|
21
|
+
static unsigned char *c;
|
|
22
|
+
static unsigned char *s;
|
|
23
|
+
static unsigned char *k2;
|
|
24
|
+
static unsigned char *n2;
|
|
25
|
+
static unsigned char *m2;
|
|
26
|
+
static unsigned char *c2;
|
|
27
|
+
static unsigned char *s2;
|
|
28
|
+
|
|
29
|
+
void preallocate(void)
|
|
30
|
+
{
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void allocate(void)
|
|
34
|
+
{
|
|
35
|
+
k = alignedcalloc(crypto_stream_KEYBYTES);
|
|
36
|
+
n = alignedcalloc(crypto_stream_NONCEBYTES);
|
|
37
|
+
m = alignedcalloc(MAXTEST_BYTES);
|
|
38
|
+
c = alignedcalloc(MAXTEST_BYTES);
|
|
39
|
+
s = alignedcalloc(MAXTEST_BYTES);
|
|
40
|
+
k2 = alignedcalloc(crypto_stream_KEYBYTES);
|
|
41
|
+
n2 = alignedcalloc(crypto_stream_NONCEBYTES);
|
|
42
|
+
m2 = alignedcalloc(MAXTEST_BYTES);
|
|
43
|
+
c2 = alignedcalloc(MAXTEST_BYTES);
|
|
44
|
+
s2 = alignedcalloc(MAXTEST_BYTES);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
void predoit(void)
|
|
48
|
+
{
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
void doit(void)
|
|
52
|
+
{
|
|
53
|
+
crypto_stream_xor(c,m,TUNE_BYTES,n,k);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
char checksum[crypto_stream_KEYBYTES * 2 + 1];
|
|
57
|
+
|
|
58
|
+
const char *checksum_compute(void)
|
|
59
|
+
{
|
|
60
|
+
long long i;
|
|
61
|
+
long long j;
|
|
62
|
+
|
|
63
|
+
for (i = 0;i < CHECKSUM_BYTES;++i) {
|
|
64
|
+
long long mlen = i;
|
|
65
|
+
long long clen = i;
|
|
66
|
+
long long slen = i;
|
|
67
|
+
long long klen = crypto_stream_KEYBYTES;
|
|
68
|
+
long long nlen = crypto_stream_NONCEBYTES;
|
|
69
|
+
for (j = -16;j < 0;++j) m[j] = random();
|
|
70
|
+
for (j = -16;j < 0;++j) c[j] = random();
|
|
71
|
+
for (j = -16;j < 0;++j) s[j] = random();
|
|
72
|
+
for (j = -16;j < 0;++j) n[j] = random();
|
|
73
|
+
for (j = -16;j < 0;++j) k[j] = random();
|
|
74
|
+
for (j = mlen;j < mlen + 16;++j) m[j] = random();
|
|
75
|
+
for (j = clen;j < clen + 16;++j) c[j] = random();
|
|
76
|
+
for (j = slen;j < slen + 16;++j) s[j] = random();
|
|
77
|
+
for (j = nlen;j < nlen + 16;++j) n[j] = random();
|
|
78
|
+
for (j = klen;j < klen + 16;++j) k[j] = random();
|
|
79
|
+
for (j = -16;j < mlen + 16;++j) m2[j] = m[j];
|
|
80
|
+
for (j = -16;j < clen + 16;++j) c2[j] = c[j];
|
|
81
|
+
for (j = -16;j < slen + 16;++j) s2[j] = s[j];
|
|
82
|
+
for (j = -16;j < nlen + 16;++j) n2[j] = n[j];
|
|
83
|
+
for (j = -16;j < klen + 16;++j) k2[j] = k[j];
|
|
84
|
+
|
|
85
|
+
crypto_stream_xor(c,m,mlen,n,k);
|
|
86
|
+
|
|
87
|
+
for (j = -16;j < mlen + 16;++j) if (m[j] != m2[j]) return "crypto_stream_xor overwrites m";
|
|
88
|
+
for (j = -16;j < slen + 16;++j) if (s[j] != s2[j]) return "crypto_stream_xor overwrites s";
|
|
89
|
+
for (j = -16;j < nlen + 16;++j) if (n[j] != n2[j]) return "crypto_stream_xor overwrites n";
|
|
90
|
+
for (j = -16;j < klen + 16;++j) if (k[j] != k2[j]) return "crypto_stream_xor overwrites k";
|
|
91
|
+
for (j = -16;j < 0;++j) if (c[j] != c2[j]) return "crypto_stream_xor writes before output";
|
|
92
|
+
for (j = clen;j < clen + 16;++j) if (c[j] != c2[j]) return "crypto_stream_xor writes after output";
|
|
93
|
+
|
|
94
|
+
for (j = -16;j < clen + 16;++j) c2[j] = c[j];
|
|
95
|
+
|
|
96
|
+
crypto_stream(s,slen,n,k);
|
|
97
|
+
|
|
98
|
+
for (j = -16;j < mlen + 16;++j) if (m[j] != m2[j]) return "crypto_stream overwrites m";
|
|
99
|
+
for (j = -16;j < clen + 16;++j) if (c[j] != c2[j]) return "crypto_stream overwrites c";
|
|
100
|
+
for (j = -16;j < nlen + 16;++j) if (n[j] != n2[j]) return "crypto_stream overwrites n";
|
|
101
|
+
for (j = -16;j < klen + 16;++j) if (k[j] != k2[j]) return "crypto_stream overwrites k";
|
|
102
|
+
for (j = -16;j < 0;++j) if (s[j] != s2[j]) return "crypto_stream writes before output";
|
|
103
|
+
for (j = slen;j < slen + 16;++j) if (s[j] != s2[j]) return "crypto_stream writes after output";
|
|
104
|
+
|
|
105
|
+
for (j = 0;j < mlen;++j)
|
|
106
|
+
if ((s[j] ^ m[j]) != c[j]) return "crypto_stream_xor does not match crypto_stream";
|
|
107
|
+
|
|
108
|
+
for (j = 0;j < clen;++j) k[j % klen] ^= c[j];
|
|
109
|
+
crypto_stream_xor(m,c,clen,n,k);
|
|
110
|
+
crypto_stream(s,slen,n,k);
|
|
111
|
+
for (j = 0;j < mlen;++j)
|
|
112
|
+
if ((s[j] ^ m[j]) != c[j]) return "crypto_stream_xor does not match crypto_stream";
|
|
113
|
+
for (j = 0;j < mlen;++j) n[j % nlen] ^= m[j];
|
|
114
|
+
m[mlen] = 0;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
for (i = 0;i < crypto_stream_KEYBYTES;++i) {
|
|
118
|
+
checksum[2 * i] = "0123456789abcdef"[15 & (k[i] >> 4)];
|
|
119
|
+
checksum[2 * i + 1] = "0123456789abcdef"[15 & k[i]];
|
|
120
|
+
}
|
|
121
|
+
checksum[2 * i] = 0;
|
|
122
|
+
|
|
123
|
+
return 0;
|
|
124
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#include <string>
|
|
2
|
+
using std::string;
|
|
3
|
+
#include "crypto_stream.h"
|
|
4
|
+
|
|
5
|
+
string crypto_stream(size_t clen,const string &n,const string &k)
|
|
6
|
+
{
|
|
7
|
+
if (n.size() != crypto_stream_NONCEBYTES) throw "incorrect nonce length";
|
|
8
|
+
if (k.size() != crypto_stream_KEYBYTES) throw "incorrect key length";
|
|
9
|
+
unsigned char c[clen];
|
|
10
|
+
crypto_stream(c,clen,(const unsigned char *) n.c_str(),(const unsigned char *) k.c_str());
|
|
11
|
+
return string((char *) c,clen);
|
|
12
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#include <string>
|
|
2
|
+
using std::string;
|
|
3
|
+
#include "crypto_stream.h"
|
|
4
|
+
|
|
5
|
+
string crypto_stream_xor(const string &m,const string &n,const string &k)
|
|
6
|
+
{
|
|
7
|
+
if (n.size() != crypto_stream_NONCEBYTES) throw "incorrect nonce length";
|
|
8
|
+
if (k.size() != crypto_stream_KEYBYTES) throw "incorrect key length";
|
|
9
|
+
size_t mlen = m.size();
|
|
10
|
+
unsigned char c[mlen];
|
|
11
|
+
crypto_stream_xor(c,
|
|
12
|
+
(const unsigned char *) m.c_str(),mlen,
|
|
13
|
+
(const unsigned char *) n.c_str(),
|
|
14
|
+
(const unsigned char *) k.c_str()
|
|
15
|
+
);
|
|
16
|
+
return string((char *) c,mlen);
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
201bc58a96adcb6ed339ca33c188af8ca04a4ce68be1e0953309ee09a0cf8e7a
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Daniel J. Bernstein
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
version 20080914
|
|
3
|
+
D. J. Bernstein
|
|
4
|
+
Public domain.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#include "crypto_core_hsalsa20.h"
|
|
8
|
+
#include "crypto_stream_salsa20.h"
|
|
9
|
+
#include "crypto_stream.h"
|
|
10
|
+
|
|
11
|
+
static const unsigned char sigma[16] = "expand 32-byte k";
|
|
12
|
+
|
|
13
|
+
int crypto_stream(
|
|
14
|
+
unsigned char *c,unsigned long long clen,
|
|
15
|
+
const unsigned char *n,
|
|
16
|
+
const unsigned char *k
|
|
17
|
+
)
|
|
18
|
+
{
|
|
19
|
+
unsigned char subkey[32];
|
|
20
|
+
crypto_core_hsalsa20(subkey,n,k,sigma);
|
|
21
|
+
return crypto_stream_salsa20(c,clen,n + 16,subkey);
|
|
22
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
version 20080913
|
|
3
|
+
D. J. Bernstein
|
|
4
|
+
Public domain.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#include "crypto_core_hsalsa20.h"
|
|
8
|
+
#include "crypto_stream_salsa20.h"
|
|
9
|
+
#include "crypto_stream.h"
|
|
10
|
+
|
|
11
|
+
static const unsigned char sigma[16] = "expand 32-byte k";
|
|
12
|
+
|
|
13
|
+
int crypto_stream_xor(
|
|
14
|
+
unsigned char *c,
|
|
15
|
+
const unsigned char *m,unsigned long long mlen,
|
|
16
|
+
const unsigned char *n,
|
|
17
|
+
const unsigned char *k
|
|
18
|
+
)
|
|
19
|
+
{
|
|
20
|
+
unsigned char subkey[32];
|
|
21
|
+
crypto_core_hsalsa20(subkey,n,k,sigma);
|
|
22
|
+
return crypto_stream_salsa20_xor(c,m,mlen,n + 16,subkey);
|
|
23
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#ifndef crypto_stream_H
|
|
2
|
+
#define crypto_stream_H
|
|
3
|
+
|
|
4
|
+
#include "crypto_stream_aes128ctr.h"
|
|
5
|
+
|
|
6
|
+
#define crypto_stream crypto_stream_aes128ctr
|
|
7
|
+
#define crypto_stream_xor crypto_stream_aes128ctr_xor
|
|
8
|
+
#define crypto_stream_beforenm crypto_stream_aes128ctr_beforenm
|
|
9
|
+
#define crypto_stream_afternm crypto_stream_aes128ctr_afternm
|
|
10
|
+
#define crypto_stream_xor_afternm crypto_stream_aes128ctr_xor_afternm
|
|
11
|
+
#define crypto_stream_KEYBYTES crypto_stream_aes128ctr_KEYBYTES
|
|
12
|
+
#define crypto_stream_NONCEBYTES crypto_stream_aes128ctr_NONCEBYTES
|
|
13
|
+
#define crypto_stream_BEFORENMBYTES crypto_stream_aes128ctr_BEFORENMBYTES
|
|
14
|
+
#define crypto_stream_PRIMITIVE "aes128ctr"
|
|
15
|
+
#define crypto_stream_IMPLEMENTATION crypto_stream_aes128ctr_IMPLEMENTATION
|
|
16
|
+
#define crypto_stream_VERSION crypto_stream_aes128ctr_VERSION
|
|
17
|
+
|
|
18
|
+
#endif
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#ifndef crypto_stream_aes128ctr_H
|
|
2
|
+
#define crypto_stream_aes128ctr_H
|
|
3
|
+
|
|
4
|
+
#ifdef __cplusplus
|
|
5
|
+
#include <string>
|
|
6
|
+
extern std::string crypto_stream_aes128ctr_portable(size_t,const std::string &,const std::string &);
|
|
7
|
+
extern std::string crypto_stream_aes128ctr_portable_xor(const std::string &,const std::string &,const std::string &);
|
|
8
|
+
extern "C" {
|
|
9
|
+
#endif
|
|
10
|
+
extern int crypto_stream_aes128ctr_portable(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
|
|
11
|
+
extern int crypto_stream_aes128ctr_portable_xor(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
|
|
12
|
+
extern int crypto_stream_aes128ctr_portable_beforenm(unsigned char *,const unsigned char *);
|
|
13
|
+
extern int crypto_stream_aes128ctr_portable_afternm(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
|
|
14
|
+
extern int crypto_stream_aes128ctr_portable_xor_afternm(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
|
|
15
|
+
#ifdef __cplusplus
|
|
16
|
+
}
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#define crypto_stream_aes128ctr crypto_stream_aes128ctr_portable
|
|
20
|
+
#define crypto_stream_aes128ctr_xor crypto_stream_aes128ctr_portable_xor
|
|
21
|
+
#define crypto_stream_aes128ctr_beforenm crypto_stream_aes128ctr_portable_beforenm
|
|
22
|
+
#define crypto_stream_aes128ctr_afternm crypto_stream_aes128ctr_portable_afternm
|
|
23
|
+
#define crypto_stream_aes128ctr_xor_afternm crypto_stream_aes128ctr_portable_xor_afternm
|
|
24
|
+
#define crypto_stream_aes128ctr_KEYBYTES crypto_stream_aes128ctr_portable_KEYBYTES
|
|
25
|
+
#define crypto_stream_aes128ctr_NONCEBYTES crypto_stream_aes128ctr_portable_NONCEBYTES
|
|
26
|
+
#define crypto_stream_aes128ctr_BEFORENMBYTES crypto_stream_aes128ctr_portable_BEFORENMBYTES
|
|
27
|
+
#define crypto_stream_aes128ctr_IMPLEMENTATION "crypto_stream/aes128ctr/portable"
|
|
28
|
+
#ifndef crypto_stream_aes128ctr_portable_VERSION
|
|
29
|
+
#define crypto_stream_aes128ctr_portable_VERSION "-"
|
|
30
|
+
#endif
|
|
31
|
+
#define crypto_stream_aes128ctr_VERSION crypto_stream_aes128ctr_portable_VERSION
|
|
32
|
+
|
|
33
|
+
#endif
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#define CRYPTO_BYTES 16
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#include "crypto_verify.h"
|
|
2
|
+
|
|
3
|
+
int crypto_verify(const unsigned char *x,const unsigned char *y)
|
|
4
|
+
{
|
|
5
|
+
unsigned int differentbits = 0;
|
|
6
|
+
#define F(i) differentbits |= x[i] ^ y[i];
|
|
7
|
+
F(0)
|
|
8
|
+
F(1)
|
|
9
|
+
F(2)
|
|
10
|
+
F(3)
|
|
11
|
+
F(4)
|
|
12
|
+
F(5)
|
|
13
|
+
F(6)
|
|
14
|
+
F(7)
|
|
15
|
+
F(8)
|
|
16
|
+
F(9)
|
|
17
|
+
F(10)
|
|
18
|
+
F(11)
|
|
19
|
+
F(12)
|
|
20
|
+
F(13)
|
|
21
|
+
F(14)
|
|
22
|
+
F(15)
|
|
23
|
+
return (1 & ((differentbits - 1) >> 8)) - 1;
|
|
24
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#define CRYPTO_BYTES 32
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#include "crypto_verify.h"
|
|
2
|
+
|
|
3
|
+
int crypto_verify(const unsigned char *x,const unsigned char *y)
|
|
4
|
+
{
|
|
5
|
+
unsigned int differentbits = 0;
|
|
6
|
+
#define F(i) differentbits |= x[i] ^ y[i];
|
|
7
|
+
F(0)
|
|
8
|
+
F(1)
|
|
9
|
+
F(2)
|
|
10
|
+
F(3)
|
|
11
|
+
F(4)
|
|
12
|
+
F(5)
|
|
13
|
+
F(6)
|
|
14
|
+
F(7)
|
|
15
|
+
F(8)
|
|
16
|
+
F(9)
|
|
17
|
+
F(10)
|
|
18
|
+
F(11)
|
|
19
|
+
F(12)
|
|
20
|
+
F(13)
|
|
21
|
+
F(14)
|
|
22
|
+
F(15)
|
|
23
|
+
F(16)
|
|
24
|
+
F(17)
|
|
25
|
+
F(18)
|
|
26
|
+
F(19)
|
|
27
|
+
F(20)
|
|
28
|
+
F(21)
|
|
29
|
+
F(22)
|
|
30
|
+
F(23)
|
|
31
|
+
F(24)
|
|
32
|
+
F(25)
|
|
33
|
+
F(26)
|
|
34
|
+
F(27)
|
|
35
|
+
F(28)
|
|
36
|
+
F(29)
|
|
37
|
+
F(30)
|
|
38
|
+
F(31)
|
|
39
|
+
return (1 & ((differentbits - 1) >> 8)) - 1;
|
|
40
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#include "crypto_verify.h"
|
|
2
|
+
|
|
3
|
+
const char *primitiveimplementation = crypto_verify_IMPLEMENTATION;
|
|
4
|
+
const char *implementationversion = crypto_verify_VERSION;
|
|
5
|
+
const char *sizenames[] = { "inputbytes", 0 };
|
|
6
|
+
const long long sizes[] = { crypto_verify_BYTES };
|
|
7
|
+
|
|
8
|
+
void preallocate(void)
|
|
9
|
+
{
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
void allocate(void)
|
|
13
|
+
{
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
void measure(void)
|
|
17
|
+
{
|
|
18
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* crypto_verify/try.c version 20090118
|
|
3
|
+
* D. J. Bernstein
|
|
4
|
+
* Public domain.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#include <stdlib.h>
|
|
8
|
+
#include "crypto_verify.h"
|
|
9
|
+
|
|
10
|
+
extern unsigned char *alignedcalloc(unsigned long long);
|
|
11
|
+
|
|
12
|
+
const char *primitiveimplementation = crypto_verify_IMPLEMENTATION;
|
|
13
|
+
|
|
14
|
+
static unsigned char *x;
|
|
15
|
+
static unsigned char *y;
|
|
16
|
+
|
|
17
|
+
void preallocate(void)
|
|
18
|
+
{
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
void allocate(void)
|
|
22
|
+
{
|
|
23
|
+
x = alignedcalloc(crypto_verify_BYTES);
|
|
24
|
+
y = alignedcalloc(crypto_verify_BYTES);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
void predoit(void)
|
|
28
|
+
{
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
void doit(void)
|
|
32
|
+
{
|
|
33
|
+
crypto_verify(x,y);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static const char *check(void)
|
|
37
|
+
{
|
|
38
|
+
int r = crypto_verify(x,y);
|
|
39
|
+
if (r == 0) {
|
|
40
|
+
if (memcmp(x,y,crypto_verify_BYTES)) return "different strings pass verify";
|
|
41
|
+
} else if (r == -1) {
|
|
42
|
+
if (!memcmp(x,y,crypto_verify_BYTES)) return "equal strings fail verify";
|
|
43
|
+
} else {
|
|
44
|
+
return "weird return value from verify";
|
|
45
|
+
}
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
char checksum[2];
|
|
50
|
+
|
|
51
|
+
const char *checksum_compute(void)
|
|
52
|
+
{
|
|
53
|
+
long long tests;
|
|
54
|
+
long long i;
|
|
55
|
+
long long j;
|
|
56
|
+
const char *c;
|
|
57
|
+
|
|
58
|
+
for (tests = 0;tests < 100000;++tests) {
|
|
59
|
+
for (i = 0;i < crypto_verify_BYTES;++i) x[i] = random();
|
|
60
|
+
for (i = 0;i < crypto_verify_BYTES;++i) y[i] = random();
|
|
61
|
+
c = check(); if (c) return c;
|
|
62
|
+
for (i = 0;i < crypto_verify_BYTES;++i) y[i] = x[i];
|
|
63
|
+
c = check(); if (c) return c;
|
|
64
|
+
y[random() % crypto_verify_BYTES] = random();
|
|
65
|
+
c = check(); if (c) return c;
|
|
66
|
+
y[random() % crypto_verify_BYTES] = random();
|
|
67
|
+
c = check(); if (c) return c;
|
|
68
|
+
y[random() % crypto_verify_BYTES] = random();
|
|
69
|
+
c = check(); if (c) return c;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
checksum[0] = '0';
|
|
73
|
+
checksum[1] = 0;
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
blocking.o
|
|
2
|
+
byte_copy.o
|
|
3
|
+
byte_isequal.o
|
|
4
|
+
byte_zero.o
|
|
5
|
+
crypto_block.o
|
|
6
|
+
die.o
|
|
7
|
+
e.o
|
|
8
|
+
hexparse.o
|
|
9
|
+
load.o
|
|
10
|
+
nameparse.o
|
|
11
|
+
nanoseconds.o
|
|
12
|
+
open_cwd.o
|
|
13
|
+
open_lock.o
|
|
14
|
+
open_pipe.o
|
|
15
|
+
open_read.o
|
|
16
|
+
open_write.o
|
|
17
|
+
portparse.o
|
|
18
|
+
randommod.o
|
|
19
|
+
safenonce.o
|
|
20
|
+
savesync.o
|
|
21
|
+
socket_bind.o
|
|
22
|
+
socket_recv.o
|
|
23
|
+
socket_send.o
|
|
24
|
+
socket_udp.o
|
|
25
|
+
uint16_pack.o
|
|
26
|
+
uint16_unpack.o
|
|
27
|
+
uint32_pack.o
|
|
28
|
+
uint32_unpack.o
|
|
29
|
+
uint64_pack.o
|
|
30
|
+
uint64_unpack.o
|
|
31
|
+
writeall.o
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Example of use (with nacl-20110221/build/*/bin in $PATH):
|
|
2
|
+
curvecpmakekey serverkey
|
|
3
|
+
curvecpprintkey serverkey > serverkey.hex
|
|
4
|
+
curvecpserver this.machine.name serverkey \
|
|
5
|
+
127.0.0.1 10000 31415926535897932384626433832795 \
|
|
6
|
+
curvecpmessage cat /usr/share/dict/words &
|
|
7
|
+
curvecpclient this.machine.name `cat serverkey.hex` \
|
|
8
|
+
127.0.0.1 10000 31415926535897932384626433832795 \
|
|
9
|
+
curvecpmessage -c sh -c 'nacl-sha512 <&6'
|
|
10
|
+
nacl-sha512 < /usr/share/dict/words
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
blocking
|
|
2
|
+
byte_copy
|
|
3
|
+
byte_isequal
|
|
4
|
+
byte_zero
|
|
5
|
+
crypto_block
|
|
6
|
+
die
|
|
7
|
+
e
|
|
8
|
+
hexparse
|
|
9
|
+
load
|
|
10
|
+
nameparse
|
|
11
|
+
nanoseconds
|
|
12
|
+
open_cwd
|
|
13
|
+
open_lock
|
|
14
|
+
open_pipe
|
|
15
|
+
open_read
|
|
16
|
+
open_write
|
|
17
|
+
portparse
|
|
18
|
+
randommod
|
|
19
|
+
safenonce
|
|
20
|
+
savesync
|
|
21
|
+
socket_bind
|
|
22
|
+
socket_recv
|
|
23
|
+
socket_send
|
|
24
|
+
socket_udp
|
|
25
|
+
uint16_pack
|
|
26
|
+
uint16_unpack
|
|
27
|
+
uint32_pack
|
|
28
|
+
uint32_unpack
|
|
29
|
+
uint64_pack
|
|
30
|
+
uint64_unpack
|
|
31
|
+
writeall
|
|
32
|
+
curvecpprintkey
|
|
33
|
+
curvecpmakekey
|
|
34
|
+
curvecpclient
|
|
35
|
+
curvecpserver
|
|
36
|
+
curvecpmessage
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#include "byte.h"
|
|
2
|
+
|
|
3
|
+
int byte_isequal(const void *yv,long long ylen,const void *xv)
|
|
4
|
+
{
|
|
5
|
+
const unsigned char *y = yv;
|
|
6
|
+
const unsigned char *x = xv;
|
|
7
|
+
unsigned char diff = 0;
|
|
8
|
+
while (ylen > 0) { diff |= (*y++ ^ *x++); --ylen; }
|
|
9
|
+
return (256 - (unsigned int) diff) >> 8;
|
|
10
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#include "crypto_block.h"
|
|
2
|
+
#include "crypto_uint64.h"
|
|
3
|
+
#include "uint64_unpack.h"
|
|
4
|
+
#include "uint64_pack.h"
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
TEA with double-size words.
|
|
8
|
+
XXX: Switch to crypto_block_aes256.
|
|
9
|
+
XXX: Build crypto_stream_aes256 on top of crypto_block_aes256.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
int crypto_block(
|
|
13
|
+
unsigned char *out,
|
|
14
|
+
const unsigned char *in,
|
|
15
|
+
const unsigned char *k
|
|
16
|
+
)
|
|
17
|
+
{
|
|
18
|
+
crypto_uint64 v0 = uint64_unpack(in + 0);
|
|
19
|
+
crypto_uint64 v1 = uint64_unpack(in + 8);
|
|
20
|
+
crypto_uint64 k0 = uint64_unpack(k + 0);
|
|
21
|
+
crypto_uint64 k1 = uint64_unpack(k + 8);
|
|
22
|
+
crypto_uint64 k2 = uint64_unpack(k + 16);
|
|
23
|
+
crypto_uint64 k3 = uint64_unpack(k + 24);
|
|
24
|
+
crypto_uint64 sum = 0;
|
|
25
|
+
crypto_uint64 delta = 0x9e3779b97f4a7c15;
|
|
26
|
+
int i;
|
|
27
|
+
for (i = 0;i < 32;++i) {
|
|
28
|
+
sum += delta;
|
|
29
|
+
v0 += ((v1<<7) + k0) ^ (v1 + sum) ^ ((v1>>12) + k1);
|
|
30
|
+
v1 += ((v0<<16) + k2) ^ (v0 + sum) ^ ((v0>>8) + k3);
|
|
31
|
+
}
|
|
32
|
+
uint64_pack(out + 0,v0);
|
|
33
|
+
uint64_pack(out + 8,v1);
|
|
34
|
+
return 0;
|
|
35
|
+
}
|