libddwaf 1.2.1.0.0.beta1-aarch64-linux → 1.3.0.0.0.beta1-aarch64-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: bfb2432bc222dbfdb31746689817e5daf2db7c33a529820a8ded0cb8562dbdfe
4
- data.tar.gz: 0e9107e0a6051237816dd853b5cfd7afa06df2491056fcc4298898b1dfc579c2
3
+ metadata.gz: a988d3a03098a355583ff7222a64805d454699820d6a132c5b154a4a27576796
4
+ data.tar.gz: ea7b4a8200bca321337dfb4725537c64471d2fb72a9a87211c08a20c84d6a0f9
5
5
  SHA512:
6
- metadata.gz: 21998b8bfc616220ee5a0b7a81565576bb4a8010fd8419cf617b6a9bd643630760f8b04550d66f8d148692770ef89173f1b63d7a9f609e4a8006e9fa59b54f16
7
- data.tar.gz: de70ff25315ddd224985021935913d27c054af0eba5c03d6272757a028b9e42745f475198028c4efad5f77a5cb7c67c03ca62c6a9a5cc3605e2f5052089fa529
6
+ metadata.gz: d04d8a56bb401b4256e86d4b5b9fa383b8c476c32d82f84569d7fd38c690ac73dd102c965483567c907a044f07e8cafa850b4d2cfe46e0e7688527bc82a60df9
7
+ data.tar.gz: c6688b5112236f7cca6ded0efeeef085c7754655f2b707d2bfd601fdedae9b7e0e23e8eba224bd64ea0bcc1880d8d886636eee4896d1b93c5b1b23b5e65e83fc
@@ -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: aarch64-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-aarch64/include/ddwaf.h
45
- - vendor/libddwaf/libddwaf-1.2.1-linux-aarch64/lib/libddwaf.so
44
+ - vendor/libddwaf/libddwaf-1.3.0-linux-aarch64/include/ddwaf.h
45
+ - vendor/libddwaf/libddwaf-1.3.0-linux-aarch64/lib/libddwaf.so
46
46
  homepage: https://github.com/DataDog/libddwaf
47
47
  licenses:
48
48
  - BSD-3-Clause