ray 0.0.1 → 0.1.0.pre1
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/.gemtest +0 -0
- data/.yardopts +4 -0
- data/README.md +17 -21
- data/Rakefile +18 -139
- data/VERSION +1 -1
- data/ext/audio.cpp +723 -0
- data/ext/{color.c → color.cpp} +25 -13
- data/ext/drawable.cpp +91 -0
- data/ext/event.cpp +460 -0
- data/ext/extconf.rb +5 -104
- data/ext/font.cpp +190 -0
- data/ext/image.cpp +733 -0
- data/ext/input.cpp +74 -0
- data/ext/ray.cpp +168 -0
- data/ext/ray.hpp +356 -0
- data/ext/{rect.c → rect.cpp} +51 -37
- data/ext/shader.cpp +169 -0
- data/ext/shape.cpp +409 -0
- data/ext/sprite.cpp +306 -0
- data/ext/text.cpp +181 -0
- data/ext/vector.cpp +215 -0
- data/guide.md +619 -0
- data/lib/ray/audio.rb +0 -41
- data/lib/ray/color.rb +32 -10
- data/lib/ray/drawable.rb +16 -0
- data/lib/ray/dsl/event_listener.rb +25 -2
- data/lib/ray/dsl/event_runner.rb +33 -5
- data/lib/ray/dsl/event_translator.rb +66 -30
- data/lib/ray/dsl/handler.rb +3 -2
- data/lib/ray/dsl/matcher.rb +58 -14
- data/lib/ray/font.rb +38 -96
- data/lib/ray/font_set.rb +8 -8
- data/lib/ray/game.rb +87 -66
- data/lib/ray/helper.rb +105 -10
- data/lib/ray/image.rb +150 -24
- data/lib/ray/image_set.rb +3 -1
- data/lib/ray/input.rb +10 -0
- data/lib/ray/music_set.rb +5 -3
- data/lib/ray/ray.rb +21 -9
- data/lib/ray/rect.rb +48 -7
- data/lib/ray/rmagick.rb +41 -0
- data/lib/ray/scene.rb +99 -43
- data/lib/ray/scene_list.rb +67 -0
- data/lib/ray/shape.rb +132 -0
- data/lib/ray/sound_set.rb +4 -2
- data/lib/ray/sprite.rb +49 -111
- data/lib/ray/text.rb +101 -0
- data/lib/ray/text_helper.rb +37 -0
- data/lib/ray/turtle.rb +215 -0
- data/lib/ray/vector.rb +226 -0
- data/samples/audio/spacial.rb +44 -0
- data/samples/hello_world/hello.rb +9 -13
- data/samples/hello_world/hello_dsl.rb +8 -12
- data/samples/hello_world/text.rb +15 -0
- data/samples/opengl/binding.rb +38 -0
- data/samples/opengl/image.rb +32 -0
- data/samples/opengl/opengl.rb +34 -0
- data/samples/opengl/shader.rb +42 -0
- data/samples/pong/pong.rb +14 -10
- data/samples/run_scene.rb +53 -0
- data/samples/shaders/scene.rb +40 -0
- data/samples/shaders/shaders.rb +42 -0
- data/samples/shaders/shape.rb +34 -0
- data/samples/sokoban/sokoban.rb +18 -18
- data/samples/test/actual_scene.rb +41 -0
- data/samples/test/scene_riot.rb +39 -0
- data/samples/test/scene_spec.rb +32 -0
- data/samples/test/scene_test_unit.rb +25 -0
- data/samples/turtle/byzantium.rb +45 -0
- data/samples/turtle/hilbert.rb +48 -0
- data/samples/turtle/koch.rb +55 -0
- data/samples/turtle/mandala.rb +61 -0
- data/samples/turtle/tree.rb +57 -0
- data/test/audio_test.rb +69 -0
- data/test/color_test.rb +77 -0
- data/test/drawable_test.rb +19 -0
- data/test/dsl_test.rb +93 -0
- data/test/font_test.rb +57 -0
- data/test/helpers.rb +94 -0
- data/test/image_test.rb +82 -0
- data/test/ray_test.rb +25 -0
- data/test/rect_test.rb +121 -0
- data/{spec → test}/res/VeraMono.ttf +0 -0
- data/{spec → test}/res/aqua.bmp +0 -0
- data/{spec → test}/res/aqua.png +0 -0
- data/{spec → test}/res/aqua2.bmp +0 -0
- data/{spec → test}/res/not_a_jpeg.jpeg +0 -0
- data/{spec → test}/res/pop.wav +0 -0
- data/test/resource_set_test.rb +99 -0
- data/test/run_all.rb +7 -0
- data/test/shape_test.rb +101 -0
- data/test/sprite_test.rb +89 -0
- data/test/text_test.rb +78 -0
- data/test/turtle_test.rb +176 -0
- data/test/vector_test.rb +111 -0
- data/yard_ext.rb +0 -28
- metadata +95 -139
- data/.gitignore +0 -23
- data/.gitmodules +0 -3
- data/.rspec +0 -3
- data/ext/audio.c +0 -473
- data/ext/event.c +0 -557
- data/ext/font.c +0 -287
- data/ext/image.c +0 -933
- data/ext/joystick.c +0 -145
- data/ext/ray.c +0 -489
- data/ext/ray.h +0 -245
- data/ext/ray_osx.m +0 -161
- data/lib/ray/joystick.rb +0 -30
- data/psp/SDL_psp_main.c +0 -84
- data/psp/bigdecimal/README +0 -60
- data/psp/bigdecimal/bigdecimal.c +0 -4697
- data/psp/bigdecimal/bigdecimal.h +0 -216
- data/psp/bigdecimal/lib/bigdecimal/jacobian.rb +0 -85
- data/psp/bigdecimal/lib/bigdecimal/ludcmp.rb +0 -84
- data/psp/bigdecimal/lib/bigdecimal/math.rb +0 -235
- data/psp/bigdecimal/lib/bigdecimal/newton.rb +0 -77
- data/psp/bigdecimal/lib/bigdecimal/util.rb +0 -65
- data/psp/digest/bubblebabble/bubblebabble.c +0 -142
- data/psp/digest/defs.h +0 -20
- data/psp/digest/digest.c +0 -643
- data/psp/digest/digest.h +0 -32
- data/psp/digest/lib/digest.rb +0 -50
- data/psp/digest/lib/md5.rb +0 -27
- data/psp/digest/lib/sha1.rb +0 -27
- data/psp/digest/md5/md5.c +0 -420
- data/psp/digest/md5/md5.h +0 -80
- data/psp/digest/md5/md5init.c +0 -40
- data/psp/digest/rmd160/rmd160.c +0 -457
- data/psp/digest/rmd160/rmd160.h +0 -56
- data/psp/digest/rmd160/rmd160init.c +0 -40
- data/psp/digest/sha1/sha1.c +0 -269
- data/psp/digest/sha1/sha1.h +0 -39
- data/psp/digest/sha1/sha1init.c +0 -40
- data/psp/digest/sha2/lib/sha2.rb +0 -73
- data/psp/digest/sha2/sha2.c +0 -919
- data/psp/digest/sha2/sha2.h +0 -109
- data/psp/digest/sha2/sha2init.c +0 -52
- data/psp/enumerator/enumerator.c +0 -298
- data/psp/etc/etc.c +0 -559
- data/psp/ext.c +0 -289
- data/psp/fcntl/fcntl.c +0 -187
- data/psp/lib/rbconfig.rb +0 -178
- data/psp/nkf/lib/kconv.rb +0 -367
- data/psp/nkf/nkf-utf8/config.h +0 -88
- data/psp/nkf/nkf-utf8/nkf.c +0 -6040
- data/psp/nkf/nkf-utf8/utf8tbl.c +0 -8500
- data/psp/nkf/nkf-utf8/utf8tbl.h +0 -34
- data/psp/nkf/nkf.c +0 -654
- data/psp/socket/addrinfo.h +0 -173
- data/psp/socket/getaddrinfo.c +0 -676
- data/psp/socket/getnameinfo.c +0 -270
- data/psp/socket/pspsocket.c +0 -71
- data/psp/socket/pspsocket.h +0 -28
- data/psp/socket/socket.c +0 -4662
- data/psp/socket/sockport.h +0 -76
- data/psp/stringio/stringio.c +0 -1306
- data/psp/strscan/strscan.c +0 -1320
- data/psp/syck/bytecode.c +0 -1166
- data/psp/syck/emitter.c +0 -1242
- data/psp/syck/gram.c +0 -1894
- data/psp/syck/gram.h +0 -79
- data/psp/syck/handler.c +0 -174
- data/psp/syck/implicit.c +0 -2990
- data/psp/syck/node.c +0 -408
- data/psp/syck/rubyext.c +0 -2367
- data/psp/syck/syck.c +0 -504
- data/psp/syck/syck.h +0 -456
- data/psp/syck/token.c +0 -2725
- data/psp/syck/yaml2byte.c +0 -257
- data/psp/syck/yamlbyte.h +0 -170
- data/psp/thread/thread.c +0 -1175
- data/psp/zlib/zlib.c +0 -3547
- data/script.rb +0 -10
- data/spec/ray/audio_spec.rb +0 -146
- data/spec/ray/color_spec.rb +0 -57
- data/spec/ray/event_spec.rb +0 -80
- data/spec/ray/font_spec.rb +0 -93
- data/spec/ray/image_set_spec.rb +0 -48
- data/spec/ray/image_spec.rb +0 -162
- data/spec/ray/joystick_spec.rb +0 -21
- data/spec/ray/matcher_spec.rb +0 -50
- data/spec/ray/ray_spec.rb +0 -88
- data/spec/ray/rect_spec.rb +0 -154
- data/spec/ray/resource_set_spec.rb +0 -105
- data/spec/ray/sprite_spec.rb +0 -163
- data/spec/spec.opts +0 -4
- data/spec/spec_helper.rb +0 -8
data/psp/digest/rmd160/rmd160.h
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/* $NetBSD: rmd160.h,v 1.2 2000/07/07 10:47:06 ad Exp $ */
|
|
2
|
-
/* $RoughId: rmd160.h,v 1.3 2002/02/24 08:14:31 knu Exp $ */
|
|
3
|
-
/* $Id: rmd160.h 11708 2007-02-12 23:01:19Z shyouhei $ */
|
|
4
|
-
|
|
5
|
-
/********************************************************************\
|
|
6
|
-
*
|
|
7
|
-
* FILE: rmd160.h
|
|
8
|
-
*
|
|
9
|
-
* CONTENTS: Header file for a sample C-implementation of the
|
|
10
|
-
* RIPEMD-160 hash-function.
|
|
11
|
-
* TARGET: any computer with an ANSI C compiler
|
|
12
|
-
*
|
|
13
|
-
* AUTHOR: Antoon Bosselaers, ESAT-COSIC
|
|
14
|
-
* DATE: 1 March 1996
|
|
15
|
-
* VERSION: 1.0
|
|
16
|
-
*
|
|
17
|
-
* Copyright (c) Katholieke Universiteit Leuven
|
|
18
|
-
* 1996, All Rights Reserved
|
|
19
|
-
*
|
|
20
|
-
\********************************************************************/
|
|
21
|
-
|
|
22
|
-
/*
|
|
23
|
-
* from OpenBSD: rmd160.h,v 1.4 1999/08/16 09:59:04 millert Exp
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
#ifndef _RMD160_H_
|
|
27
|
-
#define _RMD160_H_
|
|
28
|
-
|
|
29
|
-
#include "../defs.h"
|
|
30
|
-
|
|
31
|
-
typedef struct {
|
|
32
|
-
uint32_t state[5]; /* state (ABCDE) */
|
|
33
|
-
uint32_t length[2]; /* number of bits */
|
|
34
|
-
uint8_t bbuffer[64]; /* overflow buffer */
|
|
35
|
-
uint32_t buflen; /* number of chars in bbuffer */
|
|
36
|
-
} RMD160_CTX;
|
|
37
|
-
|
|
38
|
-
#ifdef RUBY
|
|
39
|
-
#define RMD160_Init rb_Digest_RMD160_Init
|
|
40
|
-
#define RMD160_Transform rb_Digest_RMD160_Transform
|
|
41
|
-
#define RMD160_Update rb_Digest_RMD160_Update
|
|
42
|
-
#define RMD160_Finish rb_Digest_RMD160_Finish
|
|
43
|
-
#endif
|
|
44
|
-
|
|
45
|
-
__BEGIN_DECLS
|
|
46
|
-
void RMD160_Init _((RMD160_CTX *));
|
|
47
|
-
void RMD160_Transform _((uint32_t[5], const uint32_t[16]));
|
|
48
|
-
void RMD160_Update _((RMD160_CTX *, const uint8_t *, size_t));
|
|
49
|
-
void RMD160_Finish _((RMD160_CTX *, uint8_t[20]));
|
|
50
|
-
__END_DECLS
|
|
51
|
-
|
|
52
|
-
#define RMD160_BLOCK_LENGTH 64
|
|
53
|
-
#define RMD160_DIGEST_LENGTH 20
|
|
54
|
-
#define RMD160_DIGEST_STRING_LENGTH (RMD160_DIGEST_LENGTH * 2 + 1)
|
|
55
|
-
|
|
56
|
-
#endif /* !_RMD160_H_ */
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/* $RoughId: rmd160init.c,v 1.3 2001/07/13 20:00:43 knu Exp $ */
|
|
2
|
-
/* $Id: rmd160init.c 11708 2007-02-12 23:01:19Z shyouhei $ */
|
|
3
|
-
|
|
4
|
-
#include "../digest.h"
|
|
5
|
-
#if defined(HAVE_OPENSSL_RIPEMD_H)
|
|
6
|
-
#include "rmd160ossl.h"
|
|
7
|
-
#else
|
|
8
|
-
#include "rmd160.h"
|
|
9
|
-
#endif
|
|
10
|
-
|
|
11
|
-
static rb_digest_metadata_t rmd160 = {
|
|
12
|
-
RUBY_DIGEST_API_VERSION,
|
|
13
|
-
RMD160_DIGEST_LENGTH,
|
|
14
|
-
RMD160_BLOCK_LENGTH,
|
|
15
|
-
sizeof(RMD160_CTX),
|
|
16
|
-
(rb_digest_hash_init_func_t)RMD160_Init,
|
|
17
|
-
(rb_digest_hash_update_func_t)RMD160_Update,
|
|
18
|
-
(rb_digest_hash_finish_func_t)RMD160_Finish,
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
/*
|
|
22
|
-
* A class for calculating message digests using RIPEMD-160
|
|
23
|
-
* cryptographic hash function, designed by Hans Dobbertin, Antoon
|
|
24
|
-
* Bosselaers, and Bart Preneel.
|
|
25
|
-
*/
|
|
26
|
-
void
|
|
27
|
-
Init_rmd160()
|
|
28
|
-
{
|
|
29
|
-
VALUE mDigest, cDigest_Base, cDigest_RMD160;
|
|
30
|
-
|
|
31
|
-
// rb_require("digest"); (Commenting this avoids strange errors)
|
|
32
|
-
|
|
33
|
-
mDigest = rb_path2class("Digest");
|
|
34
|
-
cDigest_Base = rb_path2class("Digest::Base");
|
|
35
|
-
|
|
36
|
-
cDigest_RMD160 = rb_define_class_under(mDigest, "RMD160", cDigest_Base);
|
|
37
|
-
|
|
38
|
-
rb_ivar_set(cDigest_RMD160, rb_intern("metadata"),
|
|
39
|
-
Data_Wrap_Struct(rb_cObject, 0, 0, &rmd160));
|
|
40
|
-
}
|
data/psp/digest/sha1/sha1.c
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
/* $NetBSD: sha1.c,v 1.2 2001/03/22 09:51:48 agc Exp $ */
|
|
2
|
-
/* $OpenBSD: sha1.c,v 1.9 1997/07/23 21:12:32 kstailey Exp $ */
|
|
3
|
-
/* $RoughId: sha1.c,v 1.2 2001/07/13 19:49:10 knu Exp $ */
|
|
4
|
-
/* $Id: sha1.c 11708 2007-02-12 23:01:19Z shyouhei $ */
|
|
5
|
-
|
|
6
|
-
/*
|
|
7
|
-
* SHA-1 in C
|
|
8
|
-
* By Steve Reid <steve@edmweb.com>
|
|
9
|
-
* 100% Public Domain
|
|
10
|
-
*
|
|
11
|
-
* Test Vectors (from FIPS PUB 180-1)
|
|
12
|
-
* "abc"
|
|
13
|
-
* A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
|
|
14
|
-
* "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
|
|
15
|
-
* 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
|
|
16
|
-
* A million repetitions of "a"
|
|
17
|
-
* 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
#include "sha1.h"
|
|
21
|
-
|
|
22
|
-
#define SHA1HANDSOFF /* Copies data before messing with it. */
|
|
23
|
-
|
|
24
|
-
#if defined(_KERNEL) || defined(_STANDALONE)
|
|
25
|
-
#include <sys/param.h>
|
|
26
|
-
#include <sys/systm.h>
|
|
27
|
-
#define _DIAGASSERT(x) (void)0
|
|
28
|
-
#else
|
|
29
|
-
/* #include "namespace.h" */
|
|
30
|
-
#include <assert.h>
|
|
31
|
-
#include <string.h>
|
|
32
|
-
#endif
|
|
33
|
-
|
|
34
|
-
#ifndef _DIAGASSERT
|
|
35
|
-
#define _DIAGASSERT(cond) assert(cond)
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
|
-
/*
|
|
39
|
-
* XXX Kludge until there is resolution regarding mem*() functions
|
|
40
|
-
* XXX in the kernel.
|
|
41
|
-
*/
|
|
42
|
-
#if defined(_KERNEL) || defined(_STANDALONE)
|
|
43
|
-
#define memcpy(s, d, l) bcopy((d), (s), (l))
|
|
44
|
-
#endif
|
|
45
|
-
|
|
46
|
-
#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
|
|
47
|
-
|
|
48
|
-
/*
|
|
49
|
-
* blk0() and blk() perform the initial expand.
|
|
50
|
-
* I got the idea of expanding during the round function from SSLeay
|
|
51
|
-
*/
|
|
52
|
-
#ifndef WORDS_BIGENDIAN
|
|
53
|
-
# define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
|
|
54
|
-
|(rol(block->l[i],8)&0x00FF00FF))
|
|
55
|
-
#else
|
|
56
|
-
# define blk0(i) block->l[i]
|
|
57
|
-
#endif
|
|
58
|
-
#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
|
|
59
|
-
^block->l[(i+2)&15]^block->l[i&15],1))
|
|
60
|
-
|
|
61
|
-
/*
|
|
62
|
-
* (R0+R1), R2, R3, R4 are the different operations (rounds) used in SHA1
|
|
63
|
-
*/
|
|
64
|
-
#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
|
|
65
|
-
#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
|
|
66
|
-
#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
|
|
67
|
-
#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
|
|
68
|
-
#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
typedef union {
|
|
72
|
-
uint8_t c[64];
|
|
73
|
-
uint32_t l[16];
|
|
74
|
-
} CHAR64LONG16;
|
|
75
|
-
|
|
76
|
-
#ifdef __sparc_v9__
|
|
77
|
-
void do_R01(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *);
|
|
78
|
-
void do_R2(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *);
|
|
79
|
-
void do_R3(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *);
|
|
80
|
-
void do_R4(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *);
|
|
81
|
-
|
|
82
|
-
#define nR0(v,w,x,y,z,i) R0(*v,*w,*x,*y,*z,i)
|
|
83
|
-
#define nR1(v,w,x,y,z,i) R1(*v,*w,*x,*y,*z,i)
|
|
84
|
-
#define nR2(v,w,x,y,z,i) R2(*v,*w,*x,*y,*z,i)
|
|
85
|
-
#define nR3(v,w,x,y,z,i) R3(*v,*w,*x,*y,*z,i)
|
|
86
|
-
#define nR4(v,w,x,y,z,i) R4(*v,*w,*x,*y,*z,i)
|
|
87
|
-
|
|
88
|
-
void
|
|
89
|
-
do_R01(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *block)
|
|
90
|
-
{
|
|
91
|
-
nR0(a,b,c,d,e, 0); nR0(e,a,b,c,d, 1); nR0(d,e,a,b,c, 2); nR0(c,d,e,a,b, 3);
|
|
92
|
-
nR0(b,c,d,e,a, 4); nR0(a,b,c,d,e, 5); nR0(e,a,b,c,d, 6); nR0(d,e,a,b,c, 7);
|
|
93
|
-
nR0(c,d,e,a,b, 8); nR0(b,c,d,e,a, 9); nR0(a,b,c,d,e,10); nR0(e,a,b,c,d,11);
|
|
94
|
-
nR0(d,e,a,b,c,12); nR0(c,d,e,a,b,13); nR0(b,c,d,e,a,14); nR0(a,b,c,d,e,15);
|
|
95
|
-
nR1(e,a,b,c,d,16); nR1(d,e,a,b,c,17); nR1(c,d,e,a,b,18); nR1(b,c,d,e,a,19);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
void
|
|
99
|
-
do_R2(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *block)
|
|
100
|
-
{
|
|
101
|
-
nR2(a,b,c,d,e,20); nR2(e,a,b,c,d,21); nR2(d,e,a,b,c,22); nR2(c,d,e,a,b,23);
|
|
102
|
-
nR2(b,c,d,e,a,24); nR2(a,b,c,d,e,25); nR2(e,a,b,c,d,26); nR2(d,e,a,b,c,27);
|
|
103
|
-
nR2(c,d,e,a,b,28); nR2(b,c,d,e,a,29); nR2(a,b,c,d,e,30); nR2(e,a,b,c,d,31);
|
|
104
|
-
nR2(d,e,a,b,c,32); nR2(c,d,e,a,b,33); nR2(b,c,d,e,a,34); nR2(a,b,c,d,e,35);
|
|
105
|
-
nR2(e,a,b,c,d,36); nR2(d,e,a,b,c,37); nR2(c,d,e,a,b,38); nR2(b,c,d,e,a,39);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
void
|
|
109
|
-
do_R3(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *block)
|
|
110
|
-
{
|
|
111
|
-
nR3(a,b,c,d,e,40); nR3(e,a,b,c,d,41); nR3(d,e,a,b,c,42); nR3(c,d,e,a,b,43);
|
|
112
|
-
nR3(b,c,d,e,a,44); nR3(a,b,c,d,e,45); nR3(e,a,b,c,d,46); nR3(d,e,a,b,c,47);
|
|
113
|
-
nR3(c,d,e,a,b,48); nR3(b,c,d,e,a,49); nR3(a,b,c,d,e,50); nR3(e,a,b,c,d,51);
|
|
114
|
-
nR3(d,e,a,b,c,52); nR3(c,d,e,a,b,53); nR3(b,c,d,e,a,54); nR3(a,b,c,d,e,55);
|
|
115
|
-
nR3(e,a,b,c,d,56); nR3(d,e,a,b,c,57); nR3(c,d,e,a,b,58); nR3(b,c,d,e,a,59);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
void
|
|
119
|
-
do_R4(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *block)
|
|
120
|
-
{
|
|
121
|
-
nR4(a,b,c,d,e,60); nR4(e,a,b,c,d,61); nR4(d,e,a,b,c,62); nR4(c,d,e,a,b,63);
|
|
122
|
-
nR4(b,c,d,e,a,64); nR4(a,b,c,d,e,65); nR4(e,a,b,c,d,66); nR4(d,e,a,b,c,67);
|
|
123
|
-
nR4(c,d,e,a,b,68); nR4(b,c,d,e,a,69); nR4(a,b,c,d,e,70); nR4(e,a,b,c,d,71);
|
|
124
|
-
nR4(d,e,a,b,c,72); nR4(c,d,e,a,b,73); nR4(b,c,d,e,a,74); nR4(a,b,c,d,e,75);
|
|
125
|
-
nR4(e,a,b,c,d,76); nR4(d,e,a,b,c,77); nR4(c,d,e,a,b,78); nR4(b,c,d,e,a,79);
|
|
126
|
-
}
|
|
127
|
-
#endif
|
|
128
|
-
|
|
129
|
-
/*
|
|
130
|
-
* Hash a single 512-bit block. This is the core of the algorithm.
|
|
131
|
-
*/
|
|
132
|
-
void SHA1_Transform(uint32_t state[5], const uint8_t buffer[64])
|
|
133
|
-
{
|
|
134
|
-
uint32_t a, b, c, d, e;
|
|
135
|
-
CHAR64LONG16 *block;
|
|
136
|
-
|
|
137
|
-
#ifdef SHA1HANDSOFF
|
|
138
|
-
CHAR64LONG16 workspace;
|
|
139
|
-
#endif
|
|
140
|
-
|
|
141
|
-
_DIAGASSERT(buffer != 0);
|
|
142
|
-
_DIAGASSERT(state != 0);
|
|
143
|
-
|
|
144
|
-
#ifdef SHA1HANDSOFF
|
|
145
|
-
block = &workspace;
|
|
146
|
-
(void)memcpy(block, buffer, 64);
|
|
147
|
-
#else
|
|
148
|
-
block = (CHAR64LONG16 *)(void *)buffer;
|
|
149
|
-
#endif
|
|
150
|
-
|
|
151
|
-
/* Copy context->state[] to working vars */
|
|
152
|
-
a = state[0];
|
|
153
|
-
b = state[1];
|
|
154
|
-
c = state[2];
|
|
155
|
-
d = state[3];
|
|
156
|
-
e = state[4];
|
|
157
|
-
|
|
158
|
-
#ifdef __sparc_v9__
|
|
159
|
-
do_R01(&a, &b, &c, &d, &e, block);
|
|
160
|
-
do_R2(&a, &b, &c, &d, &e, block);
|
|
161
|
-
do_R3(&a, &b, &c, &d, &e, block);
|
|
162
|
-
do_R4(&a, &b, &c, &d, &e, block);
|
|
163
|
-
#else
|
|
164
|
-
/* 4 rounds of 20 operations each. Loop unrolled. */
|
|
165
|
-
R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
|
|
166
|
-
R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
|
|
167
|
-
R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11);
|
|
168
|
-
R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
|
|
169
|
-
R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
|
|
170
|
-
R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
|
|
171
|
-
R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
|
|
172
|
-
R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
|
|
173
|
-
R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
|
|
174
|
-
R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
|
|
175
|
-
R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
|
|
176
|
-
R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
|
|
177
|
-
R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
|
|
178
|
-
R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
|
|
179
|
-
R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
|
|
180
|
-
R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
|
|
181
|
-
R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
|
|
182
|
-
R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
|
|
183
|
-
R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
|
|
184
|
-
R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
|
|
185
|
-
#endif
|
|
186
|
-
|
|
187
|
-
/* Add the working vars back into context.state[] */
|
|
188
|
-
state[0] += a;
|
|
189
|
-
state[1] += b;
|
|
190
|
-
state[2] += c;
|
|
191
|
-
state[3] += d;
|
|
192
|
-
state[4] += e;
|
|
193
|
-
|
|
194
|
-
/* Wipe variables */
|
|
195
|
-
a = b = c = d = e = 0;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
/*
|
|
200
|
-
* SHA1_Init - Initialize new context
|
|
201
|
-
*/
|
|
202
|
-
void SHA1_Init(SHA1_CTX *context)
|
|
203
|
-
{
|
|
204
|
-
|
|
205
|
-
_DIAGASSERT(context != 0);
|
|
206
|
-
|
|
207
|
-
/* SHA1 initialization constants */
|
|
208
|
-
context->state[0] = 0x67452301;
|
|
209
|
-
context->state[1] = 0xEFCDAB89;
|
|
210
|
-
context->state[2] = 0x98BADCFE;
|
|
211
|
-
context->state[3] = 0x10325476;
|
|
212
|
-
context->state[4] = 0xC3D2E1F0;
|
|
213
|
-
context->count[0] = context->count[1] = 0;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
/*
|
|
218
|
-
* Run your data through this.
|
|
219
|
-
*/
|
|
220
|
-
void SHA1_Update(SHA1_CTX *context, const uint8_t *data, size_t len)
|
|
221
|
-
{
|
|
222
|
-
uint32_t i, j;
|
|
223
|
-
|
|
224
|
-
_DIAGASSERT(context != 0);
|
|
225
|
-
_DIAGASSERT(data != 0);
|
|
226
|
-
|
|
227
|
-
j = context->count[0];
|
|
228
|
-
if ((context->count[0] += len << 3) < j)
|
|
229
|
-
context->count[1] += (len>>29)+1;
|
|
230
|
-
j = (j >> 3) & 63;
|
|
231
|
-
if ((j + len) > 63) {
|
|
232
|
-
(void)memcpy(&context->buffer[j], data, (i = 64-j));
|
|
233
|
-
SHA1_Transform(context->state, context->buffer);
|
|
234
|
-
for ( ; i + 63 < len; i += 64)
|
|
235
|
-
SHA1_Transform(context->state, &data[i]);
|
|
236
|
-
j = 0;
|
|
237
|
-
} else {
|
|
238
|
-
i = 0;
|
|
239
|
-
}
|
|
240
|
-
(void)memcpy(&context->buffer[j], &data[i], len - i);
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
/*
|
|
245
|
-
* Add padding and return the message digest.
|
|
246
|
-
*/
|
|
247
|
-
void SHA1_Finish(SHA1_CTX* context, uint8_t digest[20])
|
|
248
|
-
{
|
|
249
|
-
size_t i;
|
|
250
|
-
uint8_t finalcount[8];
|
|
251
|
-
|
|
252
|
-
_DIAGASSERT(digest != 0);
|
|
253
|
-
_DIAGASSERT(context != 0);
|
|
254
|
-
|
|
255
|
-
for (i = 0; i < 8; i++) {
|
|
256
|
-
finalcount[i] = (uint8_t)((context->count[(i >= 4 ? 0 : 1)]
|
|
257
|
-
>> ((3-(i & 3)) * 8) ) & 255); /* Endian independent */
|
|
258
|
-
}
|
|
259
|
-
SHA1_Update(context, (const uint8_t *)"\200", 1);
|
|
260
|
-
while ((context->count[0] & 504) != 448)
|
|
261
|
-
SHA1_Update(context, (const uint8_t *)"\0", 1);
|
|
262
|
-
SHA1_Update(context, finalcount, 8); /* Should cause a SHA1_Transform() */
|
|
263
|
-
|
|
264
|
-
if (digest) {
|
|
265
|
-
for (i = 0; i < 20; i++)
|
|
266
|
-
digest[i] = (uint8_t)
|
|
267
|
-
((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
|
|
268
|
-
}
|
|
269
|
-
}
|
data/psp/digest/sha1/sha1.h
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/* $NetBSD: sha1.h,v 1.2 1998/05/29 22:55:44 thorpej Exp $ */
|
|
2
|
-
/* $RoughId: sha1.h,v 1.3 2002/02/24 08:14:32 knu Exp $ */
|
|
3
|
-
/* $Id: sha1.h 11708 2007-02-12 23:01:19Z shyouhei $ */
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* SHA-1 in C
|
|
7
|
-
* By Steve Reid <steve@edmweb.com>
|
|
8
|
-
* 100% Public Domain
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
#ifndef _SYS_SHA1_H_
|
|
12
|
-
#define _SYS_SHA1_H_
|
|
13
|
-
|
|
14
|
-
#include "../defs.h"
|
|
15
|
-
|
|
16
|
-
typedef struct {
|
|
17
|
-
uint32_t state[5];
|
|
18
|
-
uint32_t count[2];
|
|
19
|
-
uint8_t buffer[64];
|
|
20
|
-
} SHA1_CTX;
|
|
21
|
-
|
|
22
|
-
#ifdef RUBY
|
|
23
|
-
/* avoid name clash */
|
|
24
|
-
#define SHA1_Transform rb_Digest_SHA1_Transform
|
|
25
|
-
#define SHA1_Init rb_Digest_SHA1_Init
|
|
26
|
-
#define SHA1_Update rb_Digest_SHA1_Update
|
|
27
|
-
#define SHA1_Finish rb_Digest_SHA1_Finish
|
|
28
|
-
#endif
|
|
29
|
-
|
|
30
|
-
void SHA1_Transform _((uint32_t state[5], const uint8_t buffer[64]));
|
|
31
|
-
void SHA1_Init _((SHA1_CTX *context));
|
|
32
|
-
void SHA1_Update _((SHA1_CTX *context, const uint8_t *data, size_t len));
|
|
33
|
-
void SHA1_Finish _((SHA1_CTX *context, uint8_t digest[20]));
|
|
34
|
-
|
|
35
|
-
#define SHA1_BLOCK_LENGTH 64
|
|
36
|
-
#define SHA1_DIGEST_LENGTH 20
|
|
37
|
-
#define SHA1_DIGEST_STRING_LENGTH (SHA1_DIGEST_LENGTH * 2 + 1)
|
|
38
|
-
|
|
39
|
-
#endif /* _SYS_SHA1_H_ */
|
data/psp/digest/sha1/sha1init.c
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/* $RoughId: sha1init.c,v 1.2 2001/07/13 19:49:10 knu Exp $ */
|
|
2
|
-
/* $Id: sha1init.c 11708 2007-02-12 23:01:19Z shyouhei $ */
|
|
3
|
-
|
|
4
|
-
#include "../digest.h"
|
|
5
|
-
#if defined(HAVE_OPENSSL_SHA_H)
|
|
6
|
-
#include "sha1ossl.h"
|
|
7
|
-
#else
|
|
8
|
-
#include "sha1.h"
|
|
9
|
-
#endif
|
|
10
|
-
|
|
11
|
-
static rb_digest_metadata_t sha1 = {
|
|
12
|
-
RUBY_DIGEST_API_VERSION,
|
|
13
|
-
SHA1_DIGEST_LENGTH,
|
|
14
|
-
SHA1_BLOCK_LENGTH,
|
|
15
|
-
sizeof(SHA1_CTX),
|
|
16
|
-
(rb_digest_hash_init_func_t)SHA1_Init,
|
|
17
|
-
(rb_digest_hash_update_func_t)SHA1_Update,
|
|
18
|
-
(rb_digest_hash_finish_func_t)SHA1_Finish,
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
/*
|
|
22
|
-
* A class for calculating message digests using the SHA-1 Secure Hash
|
|
23
|
-
* Algorithm by NIST (the US' National Institute of Standards and
|
|
24
|
-
* Technology), described in FIPS PUB 180-1.
|
|
25
|
-
*/
|
|
26
|
-
void
|
|
27
|
-
Init_sha1()
|
|
28
|
-
{
|
|
29
|
-
VALUE mDigest, cDigest_Base, cDigest_SHA1;
|
|
30
|
-
|
|
31
|
-
// rb_require("digest"); (Commenting this avoids strange errors)
|
|
32
|
-
|
|
33
|
-
mDigest = rb_path2class("Digest");
|
|
34
|
-
cDigest_Base = rb_path2class("Digest::Base");
|
|
35
|
-
|
|
36
|
-
cDigest_SHA1 = rb_define_class_under(mDigest, "SHA1", cDigest_Base);
|
|
37
|
-
|
|
38
|
-
rb_ivar_set(cDigest_SHA1, rb_intern("metadata"),
|
|
39
|
-
Data_Wrap_Struct(rb_cObject, 0, 0, &sha1));
|
|
40
|
-
}
|
data/psp/digest/sha2/lib/sha2.rb
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
#--
|
|
2
|
-
# sha2.rb - defines Digest::SHA2 class which wraps up the SHA256,
|
|
3
|
-
# SHA384, and SHA512 classes.
|
|
4
|
-
#++
|
|
5
|
-
# Copyright (c) 2006 Akinori MUSHA <knu@iDaemons.org>
|
|
6
|
-
#
|
|
7
|
-
# All rights reserved. You can redistribute and/or modify it under the same
|
|
8
|
-
# terms as Ruby.
|
|
9
|
-
#
|
|
10
|
-
# $Id: sha2.rb 11708 2007-02-12 23:01:19Z shyouhei $
|
|
11
|
-
|
|
12
|
-
require 'digest'
|
|
13
|
-
|
|
14
|
-
module Digest
|
|
15
|
-
#
|
|
16
|
-
# A meta digest provider class for SHA256, SHA384 and SHA512.
|
|
17
|
-
#
|
|
18
|
-
class SHA2 < Digest::Class
|
|
19
|
-
# call-seq:
|
|
20
|
-
# Digest::SHA2.new(bitlen = 256) -> digest_obj
|
|
21
|
-
#
|
|
22
|
-
# Creates a new SHA2 hash object with a given bit length.
|
|
23
|
-
def initialize(bitlen = 256)
|
|
24
|
-
case bitlen
|
|
25
|
-
when 256
|
|
26
|
-
@sha2 = Digest::SHA256.new
|
|
27
|
-
when 384
|
|
28
|
-
@sha2 = Digest::SHA384.new
|
|
29
|
-
when 512
|
|
30
|
-
@sha2 = Digest::SHA512.new
|
|
31
|
-
else
|
|
32
|
-
raise ArgumentError, "unsupported bit length: %s" % bitlen.inspect
|
|
33
|
-
end
|
|
34
|
-
@bitlen = bitlen
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# :nodoc:
|
|
38
|
-
def reset
|
|
39
|
-
@sha2.reset
|
|
40
|
-
self
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# :nodoc:
|
|
44
|
-
def update(str)
|
|
45
|
-
@sha2.update(str)
|
|
46
|
-
self
|
|
47
|
-
end
|
|
48
|
-
alias << update
|
|
49
|
-
|
|
50
|
-
def finish
|
|
51
|
-
@sha2.digest!
|
|
52
|
-
end
|
|
53
|
-
private :finish
|
|
54
|
-
|
|
55
|
-
def block_length
|
|
56
|
-
@sha2.block_length
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def digest_length
|
|
60
|
-
@sha2.digest_length
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# :nodoc:
|
|
64
|
-
def initialize_copy(other)
|
|
65
|
-
@sha2 = other.instance_eval { @sha2.clone }
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
# :nodoc:
|
|
69
|
-
def inspect
|
|
70
|
-
"#<%s:%d %s>" % [self.class.name, @bitlen, hexdigest]
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|