ietf
[Top] [All Lists]

Re: RFC 6234 code

2013-06-27 12:22:07

On 2013-06-27, at 11:49, "Dearlove, Christopher (UK)" 
<chris(_dot_)dearlove(_at_)baesystems(_dot_)com> wrote:

RFC 6234 contains, embedded in it, code to implement various functions, 
including SHA-2.

Extracting that code from the RFC is not a clean process. In addition the 
code must have existed unembedded before being embedded.

Is that code available from the IETF or elsewhere?

(I have tried some approaches to finding such code before posting here, but 
none successful.)

Turns out that extracting the code from the RFC is only twenty minutes' work. 
Probably faster just to do it than to talk about it. If you'd like a copy of 
the files I extracted from the RFC text, I can easily send you a tarball.

In general I think that maintaining code repositories is non-trivial, and also 
has been known (especially with respect to crypto/hash algorithms) to run into 
export licensing issues. Maintaining an archives of RFCs is already a core 
competency for the IETF, and (at least in some cases) exporting text is less 
problematic than exporting code.


Joe

[krill:~]% mkdir 6234
[krill:~]% cd 6234
[krill:~/6234]% curl -O 'http://tools.ietf.org/rfc/rfc6234.txt'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  231k  100  231k    0     0   190k      0  0:00:01  0:00:01 --:--:--  190k
[krill:~/6234]% vi rfc6234.txt 
[krill:~/6234]% ls
hkdf.c                  sha.h                   stdint-example.h
hmac.c                  sha1.c                  test-driver.c
rfc6234.txt             sha224-256.c            usha.c
sha-private.h           sha384-512.c
[krill:~/6234]% vi *.h *.c
10 files to edit
[krill:~/6234]% date
Thu 27 Jun 2013 13:14:53 EDT
[krill:~/6234]% 
[krill:~/6234]% cc -c hmac.c
[krill:~/6234]% cc -c sha1.c
[krill:~/6234]% cc -c sha224-256.c
[krill:~/6234]% cc -c sha384-512.c 
[krill:~/6234]% cc -c usha.c
[krill:~/6234]% cc -c test-driver.c
[krill:~/6234]% ls
hkdf.c                  sha.h                   sha384-512.o
hkdf.o                  sha1.c                  stdint-example.h
hmac.c                  sha1.o                  test-driver.c
hmac.o                  sha224-256.c            test-driver.o
rfc6234.txt             sha224-256.o            usha.c
sha-private.h           sha384-512.c            usha.o
[krill:~/6234]% cc -o test-driver *.o
[krill:~/6234]% ./test-driver| egrep '(PASS|FAIL)'
SHA1 sha standard test 1: PASSED
SHA1 sha standard test 2: PASSED
SHA1 sha standard test 3: PASSED
SHA1 sha standard test 4: PASSED
SHA1 sha standard test 5: PASSED
SHA1 sha standard test 6: PASSED
SHA1 sha standard test 7: PASSED
SHA1 sha standard test 8: PASSED
SHA1 sha standard test 9: PASSED
SHA1 sha standard test 10: PASSED
SHA1 random test 0: PASSED
SHA1 random test 1: PASSED
SHA1 random test 2: PASSED
SHA1 random test 3: PASSED
SHA224 sha standard test 1: PASSED
SHA224 sha standard test 2: PASSED
SHA224 sha standard test 3: PASSED
SHA224 sha standard test 4: PASSED
SHA224 sha standard test 5: PASSED
SHA224 sha standard test 6: PASSED
SHA224 sha standard test 7: PASSED
SHA224 sha standard test 8: PASSED
SHA224 sha standard test 9: PASSED
SHA224 sha standard test 10: PASSED
SHA224 random test 0: PASSED
SHA224 random test 1: PASSED
SHA224 random test 2: PASSED
SHA224 random test 3: PASSED
SHA256 sha standard test 1: PASSED
SHA256 sha standard test 2: PASSED
SHA256 sha standard test 3: PASSED
SHA256 sha standard test 4: PASSED
SHA256 sha standard test 5: PASSED
SHA256 sha standard test 6: PASSED
SHA256 sha standard test 7: PASSED
SHA256 sha standard test 8: PASSED
SHA256 sha standard test 9: PASSED
SHA256 sha standard test 10: PASSED
SHA256 random test 0: PASSED
SHA256 random test 1: PASSED
SHA256 random test 2: PASSED
SHA256 random test 3: PASSED
SHA384 sha standard test 1: PASSED
SHA384 sha standard test 2: PASSED
SHA384 sha standard test 3: PASSED
SHA384 sha standard test 4: PASSED
SHA384 sha standard test 5: PASSED
SHA384 sha standard test 6: PASSED
SHA384 sha standard test 7: PASSED
SHA384 sha standard test 8: PASSED
SHA384 sha standard test 9: PASSED
SHA384 sha standard test 10: PASSED
SHA384 random test 0: PASSED
SHA384 random test 1: PASSED
SHA384 random test 2: PASSED
SHA384 random test 3: PASSED
SHA512 sha standard test 1: PASSED
SHA512 sha standard test 2: PASSED
SHA512 sha standard test 3: PASSED
SHA512 sha standard test 4: PASSED
SHA512 sha standard test 5: PASSED
SHA512 sha standard test 6: PASSED
SHA512 sha standard test 7: PASSED
SHA512 sha standard test 8: PASSED
SHA512 sha standard test 9: PASSED
SHA512 sha standard test 10: PASSED
SHA512 random test 0: PASSED
SHA512 random test 1: PASSED
SHA512 random test 2: PASSED
SHA512 random test 3: PASSED
[krill:~/6234]% 


<Prev in Thread] Current Thread [Next in Thread>