Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. diff --git a/ext/digest/md5/extconf.rb b/ext/digest/md5/extconf.rb
  2. index dbef087..5da1cc7 100644
  3. --- a/ext/digest/md5/extconf.rb
  4. +++ b/ext/digest/md5/extconf.rb
  5. @@ -17,7 +17,7 @@ if !with_config("bundled-md5") &&
  6. OpenSSL.check_func("MD5_Transform", "openssl/md5.h")
  7. $objs << "md5ossl.#{$OBJEXT}"
  8. else
  9. - $objs << "md5.#{$OBJEXT}"
  10. + $objs << "md5cc.#{$OBJEXT}"
  11. end
  12.  
  13. have_header("sys/cdefs.h")
  14. diff --git a/ext/digest/md5/md5cc.c b/ext/digest/md5/md5cc.c
  15. new file mode 100644
  16. index 0000000..1f09e69
  17. --- /dev/null
  18. +++ b/ext/digest/md5/md5cc.c
  19. @@ -0,0 +1,7 @@
  20. +#include "md5cc.h"
  21. +
  22. +void
  23. +MD5_Finish(MD5_CTX *pctx, unsigned char *digest)
  24. +{
  25. + CC_MD5_Final(digest, pctx);
  26. +}
  27. diff --git a/ext/digest/md5/md5cc.h b/ext/digest/md5/md5cc.h
  28. new file mode 100644
  29. index 0000000..1b83599
  30. --- /dev/null
  31. +++ b/ext/digest/md5/md5cc.h
  32. @@ -0,0 +1,18 @@
  33. +#ifndef MD5CC_H_INCLUDED
  34. +#define MD5CC_H_INCLUDED
  35. +
  36. +#include <stddef.h>
  37. +#include <CommonCrypto/CommonDigest.h>
  38. +
  39. +#define MD5_CTX CC_MD5_CTX
  40. +
  41. +#define MD5_DIGEST_LENGTH CC_MD5_DIGEST_LENGTH
  42. +#define MD5_BLOCK_LENGTH CC_MD5_BLOCK_BYTES
  43. +
  44. +#define MD5_Init CC_MD5_Init
  45. +#define MD5_Update CC_MD5_Update
  46. +#define MD5_Finish CC_MD5_Finish
  47. +
  48. +void MD5_Finish(MD5_CTX *pctx, unsigned char *digest);
  49. +
  50. +#endif
  51. diff --git a/ext/digest/md5/md5init.c b/ext/digest/md5/md5init.c
  52. index 3cf0c1a..b2f595b 100644
  53. --- a/ext/digest/md5/md5init.c
  54. +++ b/ext/digest/md5/md5init.c
  55. @@ -5,7 +5,7 @@
  56. #if defined(HAVE_OPENSSL_MD5_H)
  57. #include "md5ossl.h"
  58. #else
  59. -#include "md5.h"
  60. +#include "md5cc.h"
  61. #endif
  62.  
  63. static const rb_digest_metadata_t md5 = {
  64. diff --git a/ext/digest/sha1/extconf.rb b/ext/digest/sha1/extconf.rb
  65. index c230270..3bd0bff 100644
  66. --- a/ext/digest/sha1/extconf.rb
  67. +++ b/ext/digest/sha1/extconf.rb
  68. @@ -17,7 +17,7 @@ if !with_config("bundled-sha1") &&
  69. OpenSSL.check_func("SHA1_Transform", "openssl/sha.h")
  70. $objs << "sha1ossl.#{$OBJEXT}"
  71. else
  72. - $objs << "sha1.#{$OBJEXT}"
  73. + $objs << "sha1cc.#{$OBJEXT}"
  74. end
  75.  
  76. have_header("sys/cdefs.h")
  77. diff --git a/ext/digest/sha1/sha1cc.c b/ext/digest/sha1/sha1cc.c
  78. new file mode 100644
  79. index 0000000..644f6ec
  80. --- /dev/null
  81. +++ b/ext/digest/sha1/sha1cc.c
  82. @@ -0,0 +1,20 @@
  83. +#include "defs.h"
  84. +#include "sha1cc.h"
  85. +
  86. +void
  87. +SHA1_Update(SHA1_CTX *ctx, const uint8_t *data, size_t len)
  88. +{
  89. + uint8_t *ptr = data;
  90. + size_t i;
  91. +
  92. + for (i = 0, ptr = data; i < (len / SHA1_STRIDE_SIZE); i++, ptr += SHA1_STRIDE_SIZE) {
  93. + CC_SHA1_Update(ctx, ptr, SHA1_STRIDE_SIZE);
  94. + }
  95. + CC_SHA1_Update(ctx, ptr, len % SHA1_STRIDE_SIZE);
  96. +}
  97. +
  98. +void
  99. +SHA1_Finish(SHA1_CTX *ctx, char *buf)
  100. +{
  101. + CC_SHA1_Final((unsigned char *)buf, ctx);
  102. +}
  103. diff --git a/ext/digest/sha1/sha1cc.h b/ext/digest/sha1/sha1cc.h
  104. new file mode 100644
  105. index 0000000..67e2876
  106. --- /dev/null
  107. +++ b/ext/digest/sha1/sha1cc.h
  108. @@ -0,0 +1,20 @@
  109. +#ifndef SHA1CC_H_INCLUDED
  110. +#define SHA1CC_H_INCLUDED
  111. +
  112. +#include <CommonCrypto/CommonDigest.h>
  113. +
  114. +#define SHA1_CTX CC_SHA1_CTX
  115. +
  116. +#define SHA1_BLOCK_LENGTH CC_SHA1_BLOCK_BYTES
  117. +#define SHA1_DIGEST_LENGTH CC_SHA1_DIGEST_LENGTH
  118. +
  119. +#define SHA1_Init CC_SHA1_Init
  120. +#define SHA1_Update CC_SHA1_Update_Block
  121. +#define SHA1_Finish CC_SHA1_Finish
  122. +
  123. +#define SHA1_STRIDE_SIZE 16384
  124. +
  125. +void SHA1_Update(SHA1_CTX *context, const uint8_t *data, size_t len);
  126. +void SHA1_Finish(SHA1_CTX *ctx, char *buf);
  127. +
  128. +#endif
  129. diff --git a/ext/digest/sha1/sha1init.c b/ext/digest/sha1/sha1init.c
  130. index 56ae0fa..57b8dfa 100644
  131. --- a/ext/digest/sha1/sha1init.c
  132. +++ b/ext/digest/sha1/sha1init.c
  133. @@ -5,7 +5,7 @@
  134. #if defined(HAVE_OPENSSL_SHA_H)
  135. #include "sha1ossl.h"
  136. #else
  137. -#include "sha1.h"
  138. +#include "sha1cc.h"
  139. #endif
  140.  
  141. static const rb_digest_metadata_t sha1 = {
  142. diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb
  143. index e272cba..b7471d8 100644
  144. --- a/ext/openssl/extconf.rb
  145. +++ b/ext/openssl/extconf.rb
  146. @@ -58,9 +58,6 @@ end
  147. unless have_header("openssl/conf_api.h")
  148. raise "OpenSSL 0.9.6 or later required."
  149. end
  150. -unless OpenSSL.check_func("SSL_library_init()", "openssl/ssl.h")
  151. - raise "Ignore OpenSSL broken by Apple.\nPlease use another openssl. (e.g. using `configure --with-openssl-dir=/path/to/openssl')"
  152. -end
  153.  
  154. Logging::message "=== Checking for OpenSSL features... ===\n"
  155. have_func("ERR_peek_last_error")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement