unisec 0.0.6 → 0.0.7
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/LICENSE +2 -1
- data/data/Blocks.txt +383 -0
- data/data/DerivedName.txt +1659 -12
- data/lib/unisec/bidi.rb +8 -8
- data/lib/unisec/blocks.rb +209 -0
- data/lib/unisec/cli/blocks.rb +93 -0
- data/lib/unisec/cli/cli.rb +10 -2
- data/lib/unisec/cli/dump.rb +87 -0
- data/lib/unisec/cli/planes.rb +99 -0
- data/lib/unisec/cli/rugrep.rb +1 -1
- data/lib/unisec/confusables.rb +3 -1
- data/lib/unisec/decdump.rb +118 -0
- data/lib/unisec/hexdump.rb +1 -1
- data/lib/unisec/normalization.rb +4 -2
- data/lib/unisec/planes.rb +224 -0
- data/lib/unisec/properties.rb +11 -42
- data/lib/unisec/rugrep.rb +3 -2
- data/lib/unisec/utils.rb +94 -0
- data/lib/unisec/version.rb +1 -1
- data/lib/unisec/versions.rb +5 -0
- data/lib/unisec.rb +3 -0
- metadata +24 -27
- data/lib/unisec/cli/hexdump.rb +0 -47
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: unisec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexandre ZANNI
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: ctf-party
|
|
@@ -16,14 +15,14 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - "~>"
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
18
|
+
version: '5.0'
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - "~>"
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
25
|
+
version: '5.0'
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: dry-cli
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,34 +57,28 @@ dependencies:
|
|
|
58
57
|
requirements:
|
|
59
58
|
- - "~>"
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '6.
|
|
62
|
-
- - ">="
|
|
63
|
-
- !ruby/object:Gem::Version
|
|
64
|
-
version: 6.11.5
|
|
60
|
+
version: '6.13'
|
|
65
61
|
type: :runtime
|
|
66
62
|
prerelease: false
|
|
67
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
68
64
|
requirements:
|
|
69
65
|
- - "~>"
|
|
70
66
|
- !ruby/object:Gem::Version
|
|
71
|
-
version: '6.
|
|
72
|
-
- - ">="
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: 6.11.5
|
|
67
|
+
version: '6.13'
|
|
75
68
|
- !ruby/object:Gem::Dependency
|
|
76
69
|
name: unicode-confusable
|
|
77
70
|
requirement: !ruby/object:Gem::Requirement
|
|
78
71
|
requirements:
|
|
79
72
|
- - "~>"
|
|
80
73
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '1.
|
|
74
|
+
version: '1.12'
|
|
82
75
|
type: :runtime
|
|
83
76
|
prerelease: false
|
|
84
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
85
78
|
requirements:
|
|
86
79
|
- - "~>"
|
|
87
80
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '1.
|
|
81
|
+
version: '1.12'
|
|
89
82
|
description: 'Toolkit for security research manipulating Unicode: confusables, homoglyphs,
|
|
90
83
|
hexdump, code point, UTF-8, UTF-16, UTF-32, properties, regexp search, size, grapheme,
|
|
91
84
|
surrogates, version, ICU, CLDR, UCD, BiDi, normalization'
|
|
@@ -97,22 +90,28 @@ extra_rdoc_files: []
|
|
|
97
90
|
files:
|
|
98
91
|
- LICENSE
|
|
99
92
|
- bin/unisec
|
|
93
|
+
- data/Blocks.txt
|
|
100
94
|
- data/DerivedName.txt
|
|
101
95
|
- lib/unisec.rb
|
|
102
96
|
- lib/unisec/bidi.rb
|
|
97
|
+
- lib/unisec/blocks.rb
|
|
103
98
|
- lib/unisec/cli/bidi.rb
|
|
99
|
+
- lib/unisec/cli/blocks.rb
|
|
104
100
|
- lib/unisec/cli/cli.rb
|
|
105
101
|
- lib/unisec/cli/confusables.rb
|
|
106
|
-
- lib/unisec/cli/
|
|
102
|
+
- lib/unisec/cli/dump.rb
|
|
107
103
|
- lib/unisec/cli/normalization.rb
|
|
104
|
+
- lib/unisec/cli/planes.rb
|
|
108
105
|
- lib/unisec/cli/properties.rb
|
|
109
106
|
- lib/unisec/cli/rugrep.rb
|
|
110
107
|
- lib/unisec/cli/size.rb
|
|
111
108
|
- lib/unisec/cli/surrogates.rb
|
|
112
109
|
- lib/unisec/cli/versions.rb
|
|
113
110
|
- lib/unisec/confusables.rb
|
|
111
|
+
- lib/unisec/decdump.rb
|
|
114
112
|
- lib/unisec/hexdump.rb
|
|
115
113
|
- lib/unisec/normalization.rb
|
|
114
|
+
- lib/unisec/planes.rb
|
|
116
115
|
- lib/unisec/properties.rb
|
|
117
116
|
- lib/unisec/rugrep.rb
|
|
118
117
|
- lib/unisec/size.rb
|
|
@@ -120,18 +119,17 @@ files:
|
|
|
120
119
|
- lib/unisec/utils.rb
|
|
121
120
|
- lib/unisec/version.rb
|
|
122
121
|
- lib/unisec/versions.rb
|
|
123
|
-
homepage: https://github.com/
|
|
122
|
+
homepage: https://github.com/noraj/unisec
|
|
124
123
|
licenses:
|
|
125
124
|
- MIT
|
|
126
125
|
metadata:
|
|
127
126
|
yard.run: yard
|
|
128
|
-
bug_tracker_uri: https://github.com/
|
|
129
|
-
changelog_uri: https://github.com/
|
|
130
|
-
documentation_uri: https://
|
|
131
|
-
homepage_uri: https://github.com/
|
|
132
|
-
source_code_uri: https://github.com/
|
|
127
|
+
bug_tracker_uri: https://github.com/noraj/unisec/issues
|
|
128
|
+
changelog_uri: https://github.com/noraj/unisec/releases
|
|
129
|
+
documentation_uri: https://noraj.github.io/unisec/
|
|
130
|
+
homepage_uri: https://github.com/noraj/unisec
|
|
131
|
+
source_code_uri: https://github.com/noraj/unisec/
|
|
133
132
|
rubygems_mfa_required: 'true'
|
|
134
|
-
post_install_message:
|
|
135
133
|
rdoc_options: []
|
|
136
134
|
require_paths:
|
|
137
135
|
- lib
|
|
@@ -139,18 +137,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
139
137
|
requirements:
|
|
140
138
|
- - ">="
|
|
141
139
|
- !ruby/object:Gem::Version
|
|
142
|
-
version: 3.
|
|
140
|
+
version: 3.2.0
|
|
143
141
|
- - "<"
|
|
144
142
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: '
|
|
143
|
+
version: '5.0'
|
|
146
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
145
|
requirements:
|
|
148
146
|
- - ">="
|
|
149
147
|
- !ruby/object:Gem::Version
|
|
150
148
|
version: '0'
|
|
151
149
|
requirements: []
|
|
152
|
-
rubygems_version:
|
|
153
|
-
signing_key:
|
|
150
|
+
rubygems_version: 4.0.3
|
|
154
151
|
specification_version: 4
|
|
155
152
|
summary: Unicode Security Toolkit
|
|
156
153
|
test_files: []
|
data/lib/unisec/cli/hexdump.rb
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'dry/cli'
|
|
4
|
-
require 'unisec'
|
|
5
|
-
|
|
6
|
-
module Unisec
|
|
7
|
-
module CLI
|
|
8
|
-
module Commands
|
|
9
|
-
# CLI command `unisec hexdumps` for the class {Unisec::Hexdump} from the lib.
|
|
10
|
-
#
|
|
11
|
-
# Example:
|
|
12
|
-
#
|
|
13
|
-
# ```plaintext
|
|
14
|
-
# $ unisec hexdump "ACCEIS"
|
|
15
|
-
# UTF-8: 41 43 43 45 49 53
|
|
16
|
-
# UTF-16BE: 0041 0043 0043 0045 0049 0053
|
|
17
|
-
# UTF-16LE: 4100 4300 4300 4500 4900 5300
|
|
18
|
-
# UTF-32BE: 00000041 00000043 00000043 00000045 00000049 00000053
|
|
19
|
-
# UTF-32LE: 41000000 43000000 43000000 45000000 49000000 53000000
|
|
20
|
-
#
|
|
21
|
-
# $unisec hexdump "ACCEIS" --enc utf16le
|
|
22
|
-
# 4100 4300 4300 4500 4900 5300
|
|
23
|
-
# ```
|
|
24
|
-
class Hexdump < Dry::CLI::Command
|
|
25
|
-
desc 'Hexdump in all Unicode encodings'
|
|
26
|
-
|
|
27
|
-
argument :input, required: true,
|
|
28
|
-
desc: 'String input. Read from STDIN if equal to -.'
|
|
29
|
-
|
|
30
|
-
option :enc, default: nil, values: %w[utf8 utf16be utf16le utf32be utf32le],
|
|
31
|
-
desc: 'Output only in the specified encoding.'
|
|
32
|
-
|
|
33
|
-
# Hexdump of all Unicode encodings.
|
|
34
|
-
# @param input [String] Input string to encode
|
|
35
|
-
def call(input: nil, **options)
|
|
36
|
-
input = $stdin.read.chomp if input == '-'
|
|
37
|
-
if options[:enc].nil?
|
|
38
|
-
puts Unisec::Hexdump.new(input).display
|
|
39
|
-
else
|
|
40
|
-
# using send() is safe here thanks to the value whitelist
|
|
41
|
-
puts Unisec::Hexdump.send(options[:enc], input)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|