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

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef97eb6550b7997fb3faa4df9cad2d72cb9f0dbf49984a29ab0285a5c017de24
4
- data.tar.gz: 9d54ccb0e16368c384e5c426ceb7ea45d559fdf3df7ab49e5b825f2da860ee40
3
+ metadata.gz: 7bc5c9fe7ea4ddb3f702f4110ae11431fd30f5a8074cbb3a6281c405fea762f7
4
+ data.tar.gz: f6ed9eec1185c8892abf39a5fec037c4c57c2ba0c5df28ca746cae02ed64619f
5
5
  SHA512:
6
- metadata.gz: d76c4ef63aa06f7cf6258214b82fbaacf717457fdb06685a037a9bf941bc0c98a8adf84739f36a94e2aebe38962b537158353eab3472792d7cf6f7cc2115b02c
7
- data.tar.gz: d29fcb5ea96f44ba6b3b19108b6c3be2a84da0ce23be58d8dcf86dc4c39dd88954f418bd485abae3d13b46de594610e0749c5f470b1adf5a83ffa79f0084e7f3
6
+ metadata.gz: 30797f5c179c9d4026ecff9240a6b622b74de731622eaf87d0efc9915e83b048df1942ad716ba48224ed44371e7fdc7af2afa120aecd491f6f1e83866b2b9857
7
+ data.tar.gz: b1507f2871b2b73cb24e595acdbf9b233203307ea9eae05759d47b486a1cf2f4d3b78a029572f2f2df030f5394d3548d51dc13fe2c09db29a18307567a781e8c
@@ -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-linux
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-linux-x86_64/include/ddwaf.h
45
- - vendor/libddwaf/libddwaf-1.2.1-linux-x86_64/lib/libddwaf.so
44
+ - vendor/libddwaf/libddwaf-1.3.0-linux-x86_64/include/ddwaf.h
45
+ - vendor/libddwaf/libddwaf-1.3.0-linux-x86_64/lib/libddwaf.so
46
46
  homepage: https://github.com/DataDog/libddwaf
47
47
  licenses:
48
48
  - BSD-3-Clause