libddwaf 1.2.1.0.0.beta1-x86_64-darwin → 1.3.0.0.0.beta1-x86_64-darwin

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: 37f6d33077e880bcde0704a6fe27712cc981a86ec99c1756da54745930e88374
4
- data.tar.gz: bb2c7d5da20f11b79e2fe6140ef9e9f72df64f89b8170b673dc7e23d53002a42
3
+ metadata.gz: 9c124120871cec9c5c708f5c8e6577b853afef9fd08d78f005671c4e45528f91
4
+ data.tar.gz: 9c192820f04542269a9e8c76760e06ef48c831496d82d9194c6ba5574869f8d3
5
5
  SHA512:
6
- metadata.gz: e41a7bd64cb511930ed98f3132738a1cecf77ecf69daa546b89e5e72ba3730535caefabbe5ce09e1909833effede751ddbe32c9cd87fb4142045b9b5c7b34ab4
7
- data.tar.gz: 13f0b28d63f2b551b0301479c46785998c16b222940aa06e4a0ac604e382c1f6cc02cf1bd5b31eca589658b63e3099e71d38d8e929231fb821874d6fdf844d4f
6
+ metadata.gz: 0c5c03f29443700f2d7fa3330b79aa2b9e0d817cad87faa31e749d0a886ab16c94bc9c6400c5446427dbc196fdbcaf68d533d56e2dac888c720224aeaf5b82eb
7
+ data.tar.gz: 60a182532cadf19203cf508cd471b6e7f170df2347ae3385bab474e79dfde3ada3c9cc0d1b71e98f522b953ed1253299fe1d346b6017b8dc6b4ac0a1895cd264
@@ -2,7 +2,7 @@ module Datadog
2
2
  module AppSec
3
3
  module WAF
4
4
  module VERSION
5
- BASE_STRING = '1.2.1'
5
+ BASE_STRING = '1.3.0'
6
6
  STRING = "#{BASE_STRING}.0.0.beta1"
7
7
  MINIMUM_RUBY_VERSION = '2.1'
8
8
  end
@@ -151,8 +151,19 @@ module Datadog
151
151
  typedef Object.by_ref, :ddwaf_rule
152
152
 
153
153
  class Config < ::FFI::Struct
154
- layout :maxArrayLength, :uint64,
155
- :maxMapDepth, :uint64
154
+ class Limits < ::FFI::Struct
155
+ layout :max_container_size, :uint32,
156
+ :max_container_depth, :uint32,
157
+ :max_string_length, :uint32
158
+ end
159
+
160
+ class Obfuscator < ::FFI::Struct
161
+ layout :key_regex, :string,
162
+ :value_regex, :string
163
+ end
164
+
165
+ layout :limits, Limits,
166
+ :obfuscator, Obfuscator
156
167
  end
157
168
 
158
169
  typedef Config.by_ref, :ddwaf_config
@@ -339,8 +350,9 @@ module Datadog
339
350
  class Handle
340
351
  attr_reader :handle_obj
341
352
 
342
- DEFAULT_MAX_ARRAY_LENGTH = 0
343
- DEFAULT_MAX_MAP_DEPTH = 0
353
+ DEFAULT_MAX_CONTAINER_SIZE = 0
354
+ DEFAULT_MAX_CONTAINER_DEPTH = 0
355
+ DEFAULT_MAX_STRING_LENGTH = 0
344
356
 
345
357
  def initialize(rule, config = {})
346
358
  rule_obj = Datadog::AppSec::WAF.ruby_to_object(rule)
@@ -353,8 +365,9 @@ module Datadog
353
365
  fail LibDDWAF::Error, 'Could not create config struct'
354
366
  end
355
367
 
356
- config_obj[:maxArrayLength] = config[:max_array_length] || DEFAULT_MAX_ARRAY_LENGTH
357
- config_obj[:maxMapDepth] = config[:max_map_depth] || DEFAULT_MAX_MAP_DEPTH
368
+ config_obj[:limits][:max_container_size] = config[:max_container_size] || DEFAULT_MAX_CONTAINER_SIZE
369
+ config_obj[:limits][:max_container_depth] = config[:max_container_depth] || DEFAULT_MAX_CONTAINER_DEPTH
370
+ config_obj[:limits][:max_string_length] = config[:max_string_length] || DEFAULT_MAX_STRING_LENGTH
358
371
 
359
372
  ruleset_info = LibDDWAF::RuleSetInfoNone
360
373
 
@@ -17,8 +17,8 @@ extern "C"
17
17
  #include <stddef.h>
18
18
 
19
19
  #define DDWAF_MAX_STRING_LENGTH 4096
20
- #define DDWAF_MAX_MAP_DEPTH 20
21
- #define DDWAF_MAX_ARRAY_LENGTH 256
20
+ #define DDWAF_MAX_CONTAINER_DEPTH 20
21
+ #define DDWAF_MAX_CONTAINER_SIZE 256
22
22
  #define DDWAF_RUN_TIMEOUT 5000
23
23
 
24
24
  /**
@@ -114,10 +114,22 @@ struct _ddwaf_object
114
114
  **/
115
115
  struct _ddwaf_config
116
116
  {
117
- /** Maximum length of ddwaf::object arrays. */
118
- uint64_t maxArrayLength;
119
- /** Maximum depth of ddwaf::object maps. */
120
- uint64_t maxMapDepth;
117
+ struct {
118
+ /** Maximum size of ddwaf::object containers. */
119
+ uint32_t max_container_size;
120
+ /** Maximum depth of ddwaf::object containers. */
121
+ uint32_t max_container_depth;
122
+ /** Maximum length of ddwaf::object strings. */
123
+ uint32_t max_string_length;
124
+ } limits;
125
+
126
+ /** Obfuscator regexes - the strings are owned by the caller */
127
+ struct {
128
+ /** Regular expression for key-based obfuscation */
129
+ const char *key_regex;
130
+ /** Regular expression for value-based obfuscation */
131
+ const char *value_regex;
132
+ } obfuscator;
121
133
  };
122
134
 
123
135
  /**
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libddwaf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1.0.0.beta1
4
+ version: 1.3.0.0.0.beta1
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-18 00:00:00.000000000 Z
11
+ date: 2022-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -41,8 +41,8 @@ files:
41
41
  - lib/datadog/appsec/waf.rb
42
42
  - lib/datadog/appsec/waf/version.rb
43
43
  - lib/libddwaf.rb
44
- - vendor/libddwaf/libddwaf-1.2.1-darwin-x86_64/include/ddwaf.h
45
- - vendor/libddwaf/libddwaf-1.2.1-darwin-x86_64/lib/libddwaf.dylib
44
+ - vendor/libddwaf/libddwaf-1.3.0-darwin-x86_64/include/ddwaf.h
45
+ - vendor/libddwaf/libddwaf-1.3.0-darwin-x86_64/lib/libddwaf.dylib
46
46
  homepage: https://github.com/DataDog/libddwaf
47
47
  licenses:
48
48
  - BSD-3-Clause