# \[bug:trunk\] Re: \[ruby-cvs:31633\] Ruby:r24415 (trunk): \* ext/digest/sha2/sha2.\[ch\]: Update to 1.0 REL

**URL:** <https://www.ruby-forum.com/t/bug-trunk-re-ruby-cvs-31633-ruby-r24415-trunk-ext-digest-sha2-sha2-ch-update-to-1-0-rel/173281>\
**Category:** Development\
**Created:** [August 6, 2009, 7:08am UTC](https://www.ruby-forum.com/t/bug-trunk-re-ruby-cvs-31633-ruby-r24415-trunk-ext-digest-sha2-sha2-ch-update-to-1-0-rel/173281 "2009-08-06T07:08:49Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [August 6, 2009, 7:08am UTC](https://www.ruby-forum.com/t/bug-trunk-re-ruby-cvs-31633-ruby-r24415-trunk-ext-digest-sha2-sha2-ch-update-to-1-0-rel/173281/1 "2009-08-06T07:08:49Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

e$B2\<5-$Ne(Bcommite$B$N7k2L!"e(BVCe$B$G$O%S%k%I$,$G$-$^$;$s!#e(B

(1) BYTE\_ORDERe$B%^%/%mEy$NDj5A$,I,MW$J$i!“e(Bextconf.rbe$B$GM-L5$r3Ne(B  
e$BG’$7$F!”$J$1$l$PDj5A$9$k$+%S%k%IBP\>]$+$i=|30$7$F$/$@$5$$!#e(B

(2) have\_headere$B%^%/%m$G%X%C%@$NB8:\_$r%A%'%C%/$7$F$$$k$J$i!"e(B  
e$B$J$$;~$Oe(B#includee$B$7$J$$$G$/$@$5$$!#e(B

In message “[ruby-cvs:31633] Ruby:r24415 (trunk): \*  
ext/digest/sha2/sha2.[ch]: Update to 1.0 RELEASE which fixes an”  
on Aug.06,2009 01:40:40, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Modified files:  
> trunk/ChangeLog  
> trunk/ext/digest/sha2/sha2.c  
> trunk/ext/digest/sha2/sha2.h

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [August 6, 2009, 12:52pm UTC](https://www.ruby-forum.com/t/bug-trunk-re-ruby-cvs-31633-ruby-r24415-trunk-ext-digest-sha2-sha2-ch-update-to-1-0-rel/173281/2 "2009-08-06T12:52:27Z")

</div>

At Thu, 6 Aug 2009 14:07:19 +0900,  
U.Nakamura wrote:

> ä¸‹è¨˜ã®commitã®çµæžœã€VCã§ã¯ãƒ“ãƒ«ãƒ‰ãŒã§ãã¾ã›ã‚“ã€‚

ã€€ã”ã‚ã‚“ãªã•ã„ã€‚

> (1) BYTE\_ORDERãƒžã‚¯ãƒ­ç­‰ã®å®šç¾©ãŒå¿…è¦ãªã‚‰ã€extconf.rbã§æœ‰ç„¡ã‚’ç¢º  
> èªã—ã¦ã€ãªã‘ã‚Œã°å®šç¾©ã™ã‚‹ã‹ãƒ“ãƒ«ãƒ‰å¯¾è±¡ã‹ã‚‰é™¤å¤–ã—ã¦ãã ã•ã„ã€‚

ã€€ãªã‘ã‚Œã°ã‚½ãƒ¼ã‚¹ä¸Šã§å®šç¾©ã™ã‚‹ã‚ˆã†ã«æ›¸ã„ãŸã¤ã‚‚ã‚Šã ã£ãŸã®ã§ã™ãŒ  
sha2.c ã‹ã‚‰ sha2.h ã«ç§»ãã†ã¨ã—ãŸã¨ãã«æ¶ˆãˆã¦ãã®ã¾ã¾commit  
ã—ã¦ã—ã¾ã£ãŸã‚ˆã†ã§ã™ã€‚

> (2) have\_headerãƒžã‚¯ãƒ­ã§ãƒ˜ãƒƒãƒ€ã®å­˜åœ¨ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ã„ã‚‹ãªã‚‰ã€  
> ãªã„æ™‚ã¯#includeã—ãªã„ã§ãã ã•ã„ã€‚

ã€€ã©ã‚Œã®ã“ã¨ã‹ã«ã‚ã‹ã«ã¯ã‚ã‹ã‚‰ãªã‹ã£ãŸã®ã§ä¸Šè¨˜ã ã‘ç›´ã—ã¾ã—ãŸã€‚

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [August 6, 2009, 12:59pm UTC](https://www.ruby-forum.com/t/bug-trunk-re-ruby-cvs-31633-ruby-r24415-trunk-ext-digest-sha2-sha2-ch-update-to-1-0-rel/173281/3 "2009-08-06T12:59:29Z")

</div>

e$B%A%1%C%He(B #1894 e$B$,99?7$5$l$^$7$?!#e(B (by Akinori MUSHA)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

## Applied in changeset r24426.

[http://redmine.ruby-lang.org/issues/show/1894](http://redmine.ruby-lang.org/issues/show/1894)

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [August 6, 2009, 2:28pm UTC](https://www.ruby-forum.com/t/bug-trunk-re-ruby-cvs-31633-ruby-r24415-trunk-ext-digest-sha2-sha2-ch-update-to-1-0-rel/173281/4 "2009-08-06T14:28:28Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:39030] Re: [bug:trunk] Re: [ruby-cvs:31633]  
Ruby:r24415 (trunk): \* ext/digest/sha2/sha2.[ch]: Update to 1.0 RELEASE  
which fixes an”  
on Aug.06,2009 19:51:37, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > (2) have\_headere$B%^%/%m$G%X%C%@$NB8:\_$r%A%'%C%/$7$F$$$k$J$i!"e(B  
> > e$B$J$$;~$Oe(B#includee$B$7$J$$$G$/$@$5$$!#e(B
> 
> e$B!!$I$l$N$3$H$+$K$o$+$K$O$o$+$i$J$+$C$?$N$G\>e5-$@$1D\>$7$^$7$?!#e(B

e$B$J$\<$+;X$,3j$C$F!V%^%/%m!W$H=q$$$F$7$^$$$^$7$?$,$=$3$O4V0c$$e(B  
e$B$G$7$?!#e(B

extconf.rbe$B$NCf$Ge(Bhave\_headere$B$r;H$C$Fe(Bsys/types.he$B!&e(Binttypes.he$B!&e(B  
unistd.he$B$NB8:\_$r3NG’$7$F$$$^$9$,!"e(Bsha2.he$BFb$GL5\>r7o$Ke(Bsys/types.h  
e$B$He(Binttypes.he$B$re(B#includee$B$7$F$$$^$9!#e(B  
e$B$^$?!"e(Bunistd.he$B$O7k6Ie(B#includee$B$7$F$$$^$;$s!#e(B

e$B$G!"B3$-$J$N$G$9$,!"e(B

(3) e$B3d$H2\<$i$J$$%P%0$,F~$C$F$$$F@EE\*$^$?$OF0E\*%j%s%/$,IT2DG=e(B  
e$B$K$J$C$F$$$?$N$G!"e(Br24427e$B$G\>!\<j$KD\>$7$F$\*$-$^$7$?!#e(B  
e$B$43NG’$/$@$5$$!#e(B

(4)  
e$B%F%9%H$r\<B9T$7$F$_$?$ie(Bsha2.soe$BMm$_$N%F%9%H$,0l@Z\<B9T$5$l$Je(B  
e$B$/$F$J$s$@$+$_$+$7$$$H;W$C$?$i!"e(Bsha2.rbe$B$,\<YKb$r$7$FC1=c$Ke(B  
e$B$Oe(Bsha2.soe$B$,%m!\<%I$5$l$J$/$J$C$F$$$^$7$?!#e(B  
r24428e$B$G\>!\<j$KD\>$7$F$_$-$^$7$?$N$G$43NG’$/$@$5$$!#e(B  
e$B$3$l$OB\>$N%V%i%s%A$K$b%P%C%/%]!\<%H$,I,MW$@$H;W$$$^$9!#e(B

(5)  
sha2.ce$BFb$Ge(BULLe$B@\Hx\<-$r;H$C$Fe(B64bite$B@0?t%j%F%i%k$r;HMQ$7$F$$e(B  
e$B$^$9$,!"e(BULLe$B$Oe(BC99e$B$GDI2C$5$l$?$b$N$J$N$G8E$$%3%s%Q%$%i$G$Oe(B  
e$B%3%s%Q%$%k%(%i!\<$K$J$j$^$9e(B(VCe$B$@$He(BUI64e$B$H$$$&@\Hx\<-$,B8:_$7e(B  
e$B$^$9e(B)e$B!#e(B  
e$B$I$&D\>$9$N$,$h$$$+H=CG$G$-$F$$$J$$$N$G$9$,!"$3$3$Ge(Brubye$B$Ne(B  
e$B%S%k%I$,;_$^$C$A$c$&$N$G2?$H$+$J$s$J$$$G$7$g$&$+!#e(B  
e$BC1$K!Ve(BULLe$B!W$rA4It:o=|$9$k$@$1$@$HB\>$N%3%s%Q%$%i$GLdBj$,=Pe(B  
e$B$?$j$7$^$9$+$Me(B?

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [August 6, 2009, 3:20pm UTC](https://www.ruby-forum.com/t/bug-trunk-re-ruby-cvs-31633-ruby-r24415-trunk-ext-digest-sha2-sha2-ch-update-to-1-0-rel/173281/5 "2009-08-06T15:20:33Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:39033] Re: [bug:trunk] Re: [ruby-cvs:31633]  
Ruby:r24415 (trunk): \* ext/digest/sha2/sha2.[ch]: Update to 1.0 RELEASE  
which fixes an”  
on Aug.06,2009 21:59:40, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> e$B$"$l!#e(Binttypes.h e$B$,e(B #include e$B$5$l$k$H$$$&$3$H$Oe(B #ifdef RUBY e$B$Ne(B  
> #else e$B$NJ}$KFMF~$7$F$$$^$9$+!#e(B\*.c e$B$O$$$:$l$be(B defs.h e$B$r7PM3$7$Fe(B  
> #include “ruby.h” e$B$7$F$$$k$N$Ge(B RUBY e$B$ODj5A$5$l$F$$$k$O$:$G$9$,!D!#e(B

e$B$“$”\<:Ni$7$^$7$?!"8+4V0c$($F$$$^$7$?!#e(B

> #if defined( **GNUC** ) || defined(\_HPUX\_SOURCE) || defined( **IBMC** )  
> #define ULL(number) number##ULL  
> #else  
> #define ULL(number) (uint64\_t)(number)  
> #endif
> 
> e$B$H$7$Fe(B ULL() e$B$G3g$kJQ99$r:FE,MQ$7$^$9!#e(B

e$B$h$m$7$/$\*4j$$$7$^$9$G$9!#e(B

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![U.Nakamura](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/b5ac83/32.png) [@U.Nakamura](https://www.ruby-forum.com/u/U.Nakamura)\
**Post date:** [August 6, 2009, 3:00pm UTC](https://www.ruby-forum.com/t/bug-trunk-re-ruby-cvs-31633-ruby-r24415-trunk-ext-digest-sha2-sha2-ch-update-to-1-0-rel/173281/6 "2009-08-06T15:00:04Z")

</div>

At Thu, 6 Aug 2009 21:28:03 +0900,  
U.Nakamura wrote:

> extconf.rbã®ä¸­ã§have\_headerã‚’ä½¿ã£ã¦sys/types.hãƒ»inttypes.hãƒ»  
> unistd.hã®å­˜åœ¨ã‚’ç¢ºèªã—ã¦ã„ã¾ã™ãŒã€sha2.hå†…ã§ç„¡æ¡ä»¶ã«sys/types.h  
> ã¨inttypes.hã‚’#includeã—ã¦ã„ã¾ã™ã€‚  
> ã¾ãŸã€unistd.hã¯çµå±€#includeã—ã¦ã„ã¾ã›ã‚“ã€‚

ã‚ã‚Œã€‚inttypes.h ãŒ #include ã•ã‚Œã‚‹ã¨ã„ã†ã“ã¨ã¯ #ifdef RUBY ã®  
#else ã®æ–¹ã«çªå…¥ã—ã¦ã„ã¾ã™ã‹ã€‚\*.c ã¯ã„ãšã‚Œã‚‚ defs.h ã‚’çµŒç”±ã—ã¦  
#include “ruby.h” ã—ã¦ã„ã‚‹ã®ã§ RUBY ã¯å®šç¾©ã•ã‚Œã¦ã„ã‚‹ã¯ãšã§ã™ãŒâ€¦ã€‚

sys/types.h ã¯ä»¥å‰ã‹ã‚‰ digest/defs.h ã§ç„¡æ¡ä»¶ã« #include ã—ã¦  
ã„ã‚‹ã®ã§ãƒã‚§ãƒƒã‚¯ã®æ„å‘³ãŒãªã„ã§ã™ã­ã€‚unistd.h ã®ãƒã‚§ãƒƒã‚¯ã¯ä½•ã‹ã®  
åæ®‹ã§ä»Šã¯ç„¡æ„å‘³ãªã‚ˆã†ã§ã™ã€‚ä»–ã® digest/\*/extconf.rb ã¨ã¨ã‚‚ã«ã€  
ã“ã®2ã¤ã®ãƒã‚§ãƒƒã‚¯ã¯ã‚„ã‚ã¾ã™ã€‚

> ã§ã€ç¶šããªã®ã§ã™ãŒã€
> 
> (3) å‰²ã¨ä¸‹ã‚‰ãªã„ãƒã‚°ãŒå…¥ã£ã¦ã„ã¦é™çš„ã¾ãŸã¯å‹•çš„ãƒªãƒ³ã‚¯ãŒä¸å¯èƒ½  
> ã«ãªã£ã¦ã„ãŸã®ã§ã€r24427ã§å‹æ‰‹ã«ç›´ã—ã¦ãŠãã¾ã—ãŸã€‚  
> ã”ç¢ºèªãã ã•ã„ã€‚

ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚

> (4) ãƒ†ã‚¹ãƒˆã‚’å®Ÿè¡Œã—ã¦ã¿ãŸã‚‰sha2.soçµ¡ã¿ã®ãƒ†ã‚¹ãƒˆãŒä¸€åˆ‡å®Ÿè¡Œã•ã‚Œãª  
> ãã¦ãªã‚“ã ã‹ãŠã‹ã—ã„ã¨æ€ã£ãŸã‚‰ã€sha2.rbãŒé‚ªé­”ã‚’ã—ã¦å˜ç´”ã«  
> ã¯sha2.soãŒãƒ­ãƒ¼ãƒ‰ã•ã‚Œãªããªã£ã¦ã„ã¾ã—ãŸã€‚  
> r24428ã§å‹æ‰‹ã«ç›´ã—ã¦ãŠãã¾ã—ãŸã®ã§ã”ç¢ºèªãã ã•ã„ã€‚  
> ã“ã‚Œã¯ä»–ã®ãƒ–ãƒ©ãƒ³ãƒã«ã‚‚ãƒãƒƒã‚¯ãƒãƒ¼ãƒˆãŒå¿…è¦ã ã¨æ€ã„ã¾ã™ã€‚

1.8.8devã«ã‚‚å…¥ã‚Œã¾ã™ã€‚

> (5) sha2.cå†…ã§ULLæŽ¥å°¾è¾žã‚’ä½¿ã£ã¦64bitæ•´æ•°ãƒªãƒ†ãƒ©ãƒ«ã‚’ä½¿ç”¨ã—ã¦ã„  
> ã¾ã™ãŒã€ULLã¯C99ã§è¿½åŠ ã•ã‚ŒãŸã‚‚ã®ãªã®ã§å¤ã„ã‚³ãƒ³ãƒ‘ã‚¤ãƒ©ã§ã¯  
> ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™(VCã ã¨UI64ã¨ã„ã†æŽ¥å°¾è¾žãŒå­˜åœ¨ã—  
> ã¾ã™)ã€‚  
> ã©ã†ç›´ã™ã®ãŒã‚ˆã„ã‹åˆ¤æ–­ã§ãã¦ã„ãªã„ã®ã§ã™ãŒã€ã“ã“ã§rubyã®  
> ãƒ“ãƒ«ãƒ‰ãŒæ­¢ã¾ã£ã¡ã‚ƒã†ã®ã§ä½•ã¨ã‹ãªã‚“ãªã„ã§ã—ã‚‡ã†ã‹ã€‚  
> å˜ã«ã€ŒULLã€ã‚’å…¨éƒ¨å‰Šé™¤ã™ã‚‹ã ã‘ã ã¨ä»–ã®ã‚³ãƒ³ãƒ‘ã‚¤ãƒ©ã§å•é¡ŒãŒå‡º  
> ãŸã‚Šã—ã¾ã™ã‹ã­?

#if defined( **GNUC** ) || defined(\_HPUX\_SOURCE) || defined( **IBMC** )  
#define ULL(number) number##ULL  
#else  
#define ULL(number) (uint64\_t)(number)  
#endif

ã¨ã—ã¦ ULL() ã§æ‹¬ã‚‹å¤‰æ›´ã‚’å†é©ç”¨ã—ã¾ã™ã€‚
