digest 3.2.0.pre0 → 3.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b483eb57905b2f3160885f8ed98050921b9b3e13005ddfdc5af7247f0c80941e
4
- data.tar.gz: 5d2e8f21b545eba60d48fc2b1a8799f46f12ae5740257fef5d956843e6f285df
3
+ metadata.gz: c6edab52fe013b394c95d740bbe7d5d9acc668f0fc6bf40bd87724a5b22e2a7c
4
+ data.tar.gz: 6565863fe4eea40c52a89e35a14114db9dd0a789786da04cb2394206ff369966
5
5
  SHA512:
6
- metadata.gz: 0aebec72ac962b1ba44caad93e6df25076ae0622955f5cfdb068379919a2aa5aae85ef5cbe3ab186a0bbbd1bd0242cb47d4fb6406fd5fad0894fef77ed95d121
7
- data.tar.gz: 615ebcf317c30885746bdd75b3d6c1c681036f2282ba912cdb2ff1eae5086d1460f37fc3fa7ae9f6dd9e9b2be9ee0be7ebe6fa276b0fb7acd73ce2ae250a1a1f
6
+ metadata.gz: 662cc5dfd95eb937bfc8089978a4145b605e3acf30ed180aad90a2f71cb4810bd87a5f94d0f97d9e285ff3979105a2c9364149dd571ceeb2468815c8b6f947d7
7
+ data.tar.gz: 1518620332c625cae0c6cb5256a6dc828a3b7d74e1fd21f50f54e2aba0599db82a7b91656e2c899e6acf74173df232916f1f9bc783a8fbec92f0be2b68cd6dc3
data/ext/digest/defs.h CHANGED
@@ -16,4 +16,26 @@
16
16
  # define __END_DECLS
17
17
  #endif
18
18
 
19
+ #define RB_DIGEST_DIAGNOSTIC(compiler, op, flag) _Pragma(STRINGIZE(compiler diagnostic op flag))
20
+ #ifdef RBIMPL_WARNING_IGNORED
21
+ # define RB_DIGEST_WARNING_IGNORED(flag) RBIMPL_WARNING_IGNORED(flag)
22
+ # define RB_DIGEST_WARNING_PUSH() RBIMPL_WARNING_PUSH()
23
+ # define RB_DIGEST_WARNING_POP() RBIMPL_WARNING_POP()
24
+ #elif defined(__clang__)
25
+ # define RB_DIGEST_WARNING_IGNORED(flag) RB_DIGEST_DIAGNOSTIC(clang, ignored, #flag)
26
+ # define RB_DIGEST_WARNING_PUSH() _Pragma("clang diagnostic push")
27
+ # define RB_DIGEST_WARNING_POP() _Pragma("clang diagnostic pop")
28
+ #else /* __GNUC__ */
29
+ # define RB_DIGEST_WARNING_IGNORED(flag) RB_DIGEST_DIAGNOSTIC(GCC, ignored, #flag)
30
+ # define RB_DIGEST_WARNING_PUSH() _Pragma("GCC diagnostic push")
31
+ # define RB_DIGEST_WARNING_POP() _Pragma("GCC diagnostic pop")
32
+ #endif
33
+ #ifdef RBIMPL_HAS_WARNING
34
+ # define RB_DIGEST_HAS_WARNING(_) RBIMPL_HAS_WARNING(_)
35
+ #elif defined(__has_warning)
36
+ # define RB_DIGEST_HAS_WARNING(_) __has_warning(_)
37
+ #else
38
+ # define RB_DIGEST_HAS_WARNING(_) 0
39
+ #endif
40
+
19
41
  #endif /* DEFS_H */
@@ -2,14 +2,16 @@
2
2
 
3
3
  def digest_conf(name)
4
4
  unless with_config("bundled-#{name}")
5
- cc = with_config("common-digest")
6
- if cc != false or /\b#{name}\b/ =~ cc
7
- if File.exist?("#$srcdir/#{name}cc.h") and
8
- have_header("CommonCrypto/CommonDigest.h")
9
- $defs << "-D#{name.upcase}_USE_COMMONDIGEST"
10
- $headers << "#{name}cc.h"
11
- return :commondigest
12
- end
5
+ case cc = with_config("common-digest", true)
6
+ when true, false
7
+ else
8
+ cc = cc.split(/[\s,]++/).any? {|pat| File.fnmatch?(pat, name)}
9
+ end
10
+ if cc and File.exist?("#$srcdir/#{name}cc.h") and
11
+ have_header("CommonCrypto/CommonDigest.h")
12
+ $defs << "-D#{name.upcase}_USE_COMMONDIGEST"
13
+ $headers << "#{name}cc.h"
14
+ return :commondigest
13
15
  end
14
16
  end
15
17
  $objs << "#{name}.#{$OBJEXT}"
@@ -2,14 +2,6 @@
2
2
  #include <CommonCrypto/CommonDigest.h>
3
3
 
4
4
  #ifdef __GNUC__
5
- # define RB_DIGEST_DIAGNOSTIC(compiler, op, flag) _Pragma(STRINGIZE(compiler diagnostic op flag))
6
- # ifdef RBIMPL_WARNING_IGNORED
7
- # define RB_DIGEST_WARNING_IGNORED(flag) RBIMPL_WARNING_IGNORED(flag)
8
- # elif defined(__clang__)
9
- # define RB_DIGEST_WARNING_IGNORED(flag) RB_DIGEST_DIAGNOSTIC(clang, ignored, #flag)
10
- # else /* __GNUC__ */
11
- # define RB_DIGEST_WARNING_IGNORED(flag) RB_DIGEST_DIAGNOSTIC(GCC, ignored, #flag)
12
- # endif
13
5
  RB_DIGEST_WARNING_IGNORED(-Wdeprecated-declarations)
14
6
  /* Suppress deprecation warnings of MD5 from Xcode 11.1 */
15
7
  /* Although we know MD5 is deprecated too, provide just for backward
@@ -3,6 +3,7 @@
3
3
 
4
4
  #include <ruby/ruby.h>
5
5
  #include "../digest.h"
6
+ #include "../defs.h"
6
7
  #if defined(MD5_USE_COMMONDIGEST)
7
8
  #include "md5cc.h"
8
9
  #else
@@ -232,8 +232,14 @@ void SHA1_Update(SHA1_CTX *context, const uint8_t *data, size_t len)
232
232
  if ((j + len) > 63) {
233
233
  (void)memcpy(&context->buffer[j], data, (i = 64-j));
234
234
  SHA1_Transform(context->state, context->buffer);
235
- for ( ; i + 63 < len; i += 64)
235
+ for ( ; i + 63 < len; i += 64) {
236
+ RB_DIGEST_WARNING_PUSH();
237
+ #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 11
238
+ RB_DIGEST_WARNING_IGNORED(-Wstringop-overread);
239
+ #endif
236
240
  SHA1_Transform(context->state, &data[i]);
241
+ RB_DIGEST_WARNING_POP();
242
+ }
237
243
  j = 0;
238
244
  } else {
239
245
  i = 0;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Digest
4
- VERSION = "3.2.0.pre0"
4
+ VERSION = "3.2.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: digest
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0.pre0
4
+ version: 3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akinori MUSHA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-11 00:00:00.000000000 Z
11
+ date: 2025-10-31 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Provides a framework for message digest libraries.
14
14
  email:
@@ -77,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0'
79
79
  requirements: []
80
- rubygems_version: 3.5.11
80
+ rubygems_version: 3.5.22
81
81
  signing_key:
82
82
  specification_version: 4
83
83
  summary: Provides a framework for message digest libraries.