libddwaf 1.22.0.0.2-aarch64-linux → 1.24.1.0.3-aarch64-linux
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 +4 -4
- data/CHANGELOG.md +21 -2
- data/README.md +124 -0
- data/lib/datadog/appsec/waf/context.rb +24 -38
- data/lib/datadog/appsec/waf/converter.rb +62 -69
- data/lib/datadog/appsec/waf/errors.rb +19 -0
- data/lib/datadog/appsec/waf/handle.rb +29 -77
- data/lib/datadog/appsec/waf/handle_builder.rb +91 -0
- data/lib/datadog/appsec/waf/lib_ddwaf.rb +90 -123
- data/lib/datadog/appsec/waf/version.rb +3 -3
- data/lib/datadog/appsec/waf.rb +9 -7
- data/lib/libddwaf.rb +1 -1
- data/libddwaf.gemspec +43 -0
- data/sig/datadog/appsec/waf/context.rbs +29 -0
- data/sig/datadog/appsec/waf/converter.rbs +11 -0
- data/sig/datadog/appsec/waf/errors.rbs +20 -0
- data/sig/datadog/appsec/waf/handle.rbs +21 -0
- data/sig/datadog/appsec/waf/handle_builder.rbs +23 -0
- data/sig/datadog/appsec/waf/lib_ddwaf.rbs +158 -0
- data/sig/datadog/appsec/waf/result.rbs +33 -0
- data/sig/datadog/appsec/waf/version.rbs +13 -0
- data/sig/datadog/appsec/waf.rbs +16 -0
- data/sig/libddwaf.rbs +0 -0
- data/vendor/libddwaf/{libddwaf-1.22.0-linux-aarch64 → libddwaf-1.24.1-linux-aarch64}/lib/libddwaf.so +0 -0
- data/vendor/rbs/gem/0/gem.rbs +7 -0
- data/vendor/rbs/jruby/0/jruby.rbs +3 -0
- metadata +19 -3
@@ -0,0 +1,158 @@
|
|
1
|
+
module Datadog
|
2
|
+
module AppSec
|
3
|
+
module WAF
|
4
|
+
module LibDDWAF
|
5
|
+
DEFAULT_MAX_CONTAINER_SIZE: ::Integer
|
6
|
+
DEFAULT_MAX_CONTAINER_DEPTH: ::Integer
|
7
|
+
DEFAULT_MAX_STRING_LENGTH: ::Integer
|
8
|
+
|
9
|
+
DDWAF_MAX_CONTAINER_SIZE: ::Integer
|
10
|
+
DDWAF_MAX_CONTAINER_DEPTH: ::Integer
|
11
|
+
DDWAF_MAX_STRING_LENGTH: ::Integer
|
12
|
+
|
13
|
+
DDWAF_RUN_TIMEOUT: ::Integer
|
14
|
+
|
15
|
+
extend ::FFI::Library
|
16
|
+
|
17
|
+
def self.typedef: [T < ::FFI::Type, N, R, C] (T old, Symbol | ::FFI::DataConverter[N, R, C] add, ?untyped) -> T
|
18
|
+
| (Symbol old, Symbol add, ?untyped) -> (::FFI::Type | ::FFI::Enum)
|
19
|
+
| [X < ::FFI::DataConverter[N, R, C], N, R, C] (X old, Symbol add, ?untyped) -> ::FFI::Type::Mapped[X, N, R, C]
|
20
|
+
| (:enum old, Array[Symbol | Integer] add, ?untyped) -> ::FFI::Enum
|
21
|
+
| (:enum old, Symbol | ::FFI::Type add, Array[Symbol | Integer] info) -> ::FFI::Enum
|
22
|
+
| (untyped, ::Symbol) -> void
|
23
|
+
|
24
|
+
def self.callback: (::Symbol name, Array[::FFI::Library::ffi_lib_type] params, ::FFI::Library::ffi_lib_type ret) -> ::FFI::CallbackInfo
|
25
|
+
|
26
|
+
def self.enum: (*(Symbol | Integer) args) -> ::FFI::Enum
|
27
|
+
| (Array[Symbol | Integer] values) -> ::FFI::Enum
|
28
|
+
|
29
|
+
def self.local_os: () -> ::String
|
30
|
+
def self.local_cpu: () -> ::String
|
31
|
+
def self.local_version: () -> (::String | nil)
|
32
|
+
def self.source_dir: () -> ::String
|
33
|
+
def self.vendor_dir: () -> ::String
|
34
|
+
def self.libddwaf_vendor_dir: () -> ::String
|
35
|
+
def self.shared_lib_triplet: (?version: ::String?) -> ::String
|
36
|
+
def self.libddwaf_dir: () -> ::String
|
37
|
+
def self.shared_lib_extname: () -> ::String
|
38
|
+
def self.shared_lib_path: () -> ::String
|
39
|
+
|
40
|
+
# version
|
41
|
+
|
42
|
+
def self.ddwaf_get_version: () -> ::String
|
43
|
+
|
44
|
+
# ddwaf::object data structure
|
45
|
+
|
46
|
+
DDWAF_OBJ_TYPE: ::FFI::Enum
|
47
|
+
|
48
|
+
class UInt32Ptr < ::FFI::Struct[::FFI::AbstractMemory, ::Integer]
|
49
|
+
end
|
50
|
+
|
51
|
+
class UInt64Ptr < ::FFI::Struct[::FFI::AbstractMemory, ::Integer]
|
52
|
+
end
|
53
|
+
|
54
|
+
class SizeTPtr < ::FFI::Struct[::FFI::AbstractMemory, ::Integer]
|
55
|
+
end
|
56
|
+
|
57
|
+
class ObjectValueUnion < ::FFI::Union[::FFI::AbstractMemory, untyped]
|
58
|
+
end
|
59
|
+
|
60
|
+
class Object < ::FFI::Struct[::FFI::AbstractMemory, untyped]
|
61
|
+
end
|
62
|
+
|
63
|
+
# setters
|
64
|
+
|
65
|
+
def self.ddwaf_object_invalid: (LibDDWAF::Object) -> ::FFI::Pointer
|
66
|
+
def self.ddwaf_object_string: (LibDDWAF::Object, ::String) -> ::FFI::Pointer
|
67
|
+
def self.ddwaf_object_stringl: (LibDDWAF::Object, ::String, ::Integer) -> ::FFI::Pointer
|
68
|
+
def self.ddwaf_object_stringl_nc: (LibDDWAF::Object, ::String, ::Integer) -> ::FFI::Pointer
|
69
|
+
def self.ddwaf_object_unsigned: (LibDDWAF::Object, ::Integer) -> ::FFI::Pointer
|
70
|
+
def self.ddwaf_object_signed: (LibDDWAF::Object, ::Integer) -> ::FFI::Pointer
|
71
|
+
def self.ddwaf_object_string_from_unsigned: (LibDDWAF::Object, ::Integer) -> ::FFI::Pointer
|
72
|
+
def self.ddwaf_object_string_from_signed: (LibDDWAF::Object, ::Integer) -> ::FFI::Pointer
|
73
|
+
def self.ddwaf_object_bool: (LibDDWAF::Object, bool) -> ::FFI::Pointer
|
74
|
+
def self.ddwaf_object_float: (LibDDWAF::Object, ::Float) -> ::FFI::Pointer
|
75
|
+
def self.ddwaf_object_null: (LibDDWAF::Object) -> ::FFI::Pointer
|
76
|
+
|
77
|
+
def self.ddwaf_object_array: (LibDDWAF::Object) -> ::FFI::Pointer
|
78
|
+
def self.ddwaf_object_array_add: (LibDDWAF::Object, LibDDWAF::Object) -> bool
|
79
|
+
|
80
|
+
def self.ddwaf_object_map: (LibDDWAF::Object) -> ::FFI::Pointer
|
81
|
+
def self.ddwaf_object_map_add: (LibDDWAF::Object, ::String, LibDDWAF::Object) -> bool
|
82
|
+
def self.ddwaf_object_map_addl: (LibDDWAF::Object, ::String, ::Integer, LibDDWAF::Object) -> bool
|
83
|
+
def self.ddwaf_object_map_addl_nc: (LibDDWAF::Object, ::String, ::Integer, LibDDWAF::Object) -> bool
|
84
|
+
|
85
|
+
# getters
|
86
|
+
|
87
|
+
def self.ddwaf_object_type: (LibDDWAF::Object) -> ::FFI::Enum
|
88
|
+
def self.ddwaf_object_size: (LibDDWAF::Object) -> ::Integer
|
89
|
+
def self.ddwaf_object_length: (LibDDWAF::Object) -> ::Integer
|
90
|
+
def self.ddwaf_object_get_key: (LibDDWAF::Object, SizeTPtr) -> ::String
|
91
|
+
def self.ddwaf_object_get_string: (LibDDWAF::Object, SizeTPtr) -> ::String
|
92
|
+
def self.ddwaf_object_get_unsigned: (LibDDWAF::Object, SizeTPtr) -> ::Integer
|
93
|
+
def self.ddwaf_object_get_signed: (LibDDWAF::Object, SizeTPtr) -> ::Integer
|
94
|
+
def self.ddwaf_object_get_index: (LibDDWAF::Object, ::Integer) -> LibDDWAF::Object
|
95
|
+
def self.ddwaf_object_get_bool: (LibDDWAF::Object) -> bool
|
96
|
+
def self.ddwaf_object_get_float: (LibDDWAF::Object) -> ::Float
|
97
|
+
|
98
|
+
# freeers
|
99
|
+
|
100
|
+
def self.ddwaf_object_free: (LibDDWAF::Object) -> void
|
101
|
+
|
102
|
+
ObjectFree: ::FFI::Function
|
103
|
+
ObjectNoFree: ::FFI::Pointer
|
104
|
+
|
105
|
+
# handle builder
|
106
|
+
|
107
|
+
def self.ddwaf_builder_init: (HandleBuilderConfig) -> ::FFI::Pointer
|
108
|
+
def self.ddwaf_builder_destroy: (::FFI::Pointer) -> void
|
109
|
+
|
110
|
+
def self.ddwaf_builder_add_or_update_config: (::FFI::Pointer, ::String, ::Integer, LibDDWAF::Object, LibDDWAF::Object) -> bool
|
111
|
+
def self.ddwaf_builder_remove_config: (::FFI::Pointer, ::String, ::Integer) -> bool
|
112
|
+
|
113
|
+
def self.ddwaf_builder_build_instance: (::FFI::Pointer) -> ::FFI::Pointer
|
114
|
+
|
115
|
+
# main handle
|
116
|
+
|
117
|
+
class HandleBuilderConfig < ::FFI::Struct[::FFI::AbstractMemory, untyped]
|
118
|
+
class Limits < ::FFI::Struct[::FFI::AbstractMemory, ::Integer]
|
119
|
+
end
|
120
|
+
|
121
|
+
class Obfuscator < ::FFI::Struct[::FFI::AbstractMemory, ::FFI::Pointer]
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def self.ddwaf_destroy: (::FFI::Pointer) -> void
|
126
|
+
|
127
|
+
def self.ddwaf_known_addresses: (::FFI::Pointer, UInt32Ptr) -> ::FFI::Pointer
|
128
|
+
def self.ddwaf_rule_data_ids: (::FFI::Pointer, UInt32Ptr) -> ::FFI::Pointer
|
129
|
+
|
130
|
+
# updating
|
131
|
+
|
132
|
+
DDWAF_RET_CODE: ::FFI::Enum
|
133
|
+
|
134
|
+
# running
|
135
|
+
|
136
|
+
def self.ddwaf_context_init: (::FFI::Pointer) -> ::FFI::Pointer
|
137
|
+
def self.ddwaf_context_destroy: (::FFI::Pointer) -> void
|
138
|
+
|
139
|
+
class Result < ::FFI::Struct[::FFI::AbstractMemory, untyped]
|
140
|
+
end
|
141
|
+
|
142
|
+
def self.ddwaf_run: (::FFI::Pointer, Object, Object, Result, ::Integer) -> ::Symbol
|
143
|
+
def self.ddwaf_result_free: (Result) -> void
|
144
|
+
|
145
|
+
# logging
|
146
|
+
|
147
|
+
DDWAF_LOG_LEVEL: ::FFI::Enum
|
148
|
+
|
149
|
+
type ddwaf_log_level = ::Symbol
|
150
|
+
|
151
|
+
# TODO: signature is as below but steep 1.1 does not yet support method/proc/block mapping
|
152
|
+
# type ddwaf_log_cb = ^(ddwaf_log_level, ::String, ::String, ::Integer, ::FFI::Pointer, ::Integer) -> void
|
153
|
+
type ddwaf_log_cb = ::Method | ::Proc
|
154
|
+
def self.ddwaf_set_log_cb: (ddwaf_log_cb, ddwaf_log_level) -> bool
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Datadog
|
2
|
+
module AppSec
|
3
|
+
module WAF
|
4
|
+
class Result
|
5
|
+
@status: ::Symbol
|
6
|
+
|
7
|
+
@events: WAF::data
|
8
|
+
|
9
|
+
@total_runtime: ::Float
|
10
|
+
|
11
|
+
@timeout: bool
|
12
|
+
|
13
|
+
@actions: WAF::data
|
14
|
+
|
15
|
+
@derivatives: WAF::data
|
16
|
+
|
17
|
+
attr_reader status: ::Symbol
|
18
|
+
|
19
|
+
attr_reader events: WAF::data
|
20
|
+
|
21
|
+
attr_reader total_runtime: ::Float
|
22
|
+
|
23
|
+
attr_reader timeout: bool
|
24
|
+
|
25
|
+
attr_reader actions: WAF::data
|
26
|
+
|
27
|
+
attr_reader derivatives: WAF::data
|
28
|
+
|
29
|
+
def initialize: (::Symbol status, WAF::data events, ::Float total_runtime, bool timeout, WAF::data actions, WAF::data derivatives) -> void
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Datadog
|
2
|
+
module AppSec
|
3
|
+
module WAF
|
4
|
+
type data = String | Symbol | Integer | Float | TrueClass | FalseClass | Array[data] | Hash[(String | Symbol | nil), data] | nil
|
5
|
+
|
6
|
+
def self.version: () -> ::String
|
7
|
+
|
8
|
+
self.@logger: ::Logger
|
9
|
+
self.@log_callback: LibDDWAF::ddwaf_log_cb
|
10
|
+
|
11
|
+
def self.log_callback: (LibDDWAF::ddwaf_log_level, ::String, ::String, ::Integer, ::FFI::Pointer, ::Integer) -> void
|
12
|
+
def self.logger: () -> ::Logger
|
13
|
+
def self.logger=: (::Logger logger) -> void
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/sig/libddwaf.rbs
ADDED
File without changes
|
data/vendor/libddwaf/{libddwaf-1.22.0-linux-aarch64 → libddwaf-1.24.1-linux-aarch64}/lib/libddwaf.so
RENAMED
Binary file
|
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.
|
4
|
+
version: 1.24.1.0.3
|
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: 2025-
|
11
|
+
date: 2025-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -39,15 +39,31 @@ files:
|
|
39
39
|
- LICENSE.Apache
|
40
40
|
- LICENSE.BSD3
|
41
41
|
- NOTICE
|
42
|
+
- README.md
|
42
43
|
- lib/datadog/appsec/waf.rb
|
43
44
|
- lib/datadog/appsec/waf/context.rb
|
44
45
|
- lib/datadog/appsec/waf/converter.rb
|
46
|
+
- lib/datadog/appsec/waf/errors.rb
|
45
47
|
- lib/datadog/appsec/waf/handle.rb
|
48
|
+
- lib/datadog/appsec/waf/handle_builder.rb
|
46
49
|
- lib/datadog/appsec/waf/lib_ddwaf.rb
|
47
50
|
- lib/datadog/appsec/waf/result.rb
|
48
51
|
- lib/datadog/appsec/waf/version.rb
|
49
52
|
- lib/libddwaf.rb
|
50
|
-
-
|
53
|
+
- libddwaf.gemspec
|
54
|
+
- sig/datadog/appsec/waf.rbs
|
55
|
+
- sig/datadog/appsec/waf/context.rbs
|
56
|
+
- sig/datadog/appsec/waf/converter.rbs
|
57
|
+
- sig/datadog/appsec/waf/errors.rbs
|
58
|
+
- sig/datadog/appsec/waf/handle.rbs
|
59
|
+
- sig/datadog/appsec/waf/handle_builder.rbs
|
60
|
+
- sig/datadog/appsec/waf/lib_ddwaf.rbs
|
61
|
+
- sig/datadog/appsec/waf/result.rbs
|
62
|
+
- sig/datadog/appsec/waf/version.rbs
|
63
|
+
- sig/libddwaf.rbs
|
64
|
+
- vendor/libddwaf/libddwaf-1.24.1-linux-aarch64/lib/libddwaf.so
|
65
|
+
- vendor/rbs/gem/0/gem.rbs
|
66
|
+
- vendor/rbs/jruby/0/jruby.rbs
|
51
67
|
homepage: https://github.com/DataDog/libddwaf-rb
|
52
68
|
licenses:
|
53
69
|
- BSD-3-Clause
|