|
122 | 122 | described_class.new(public_key: public_key, key_id: key_id) |
123 | 123 | } |
124 | 124 |
|
125 | | - it "checks single address" do |
| 125 | + it "checks single IPv4 address" do |
126 | 126 | subject.critical_options["source-address"] = "1.1.1.1" |
127 | 127 | expect(subject.allowed_source_address?("1.1.1.1")).to be(true) |
128 | 128 | expect(subject.allowed_source_address?("2.2.2.2")).to be(false) |
129 | 129 | end |
130 | 130 |
|
131 | | - it "checks multiple addresses" do |
| 131 | + it "checks single IPv6 address" do |
| 132 | + subject.critical_options["source-address"] = "3ffe:505:2::1" |
| 133 | + expect(subject.allowed_source_address?("3ffe:505:2::1")).to be(true) |
| 134 | + expect(subject.allowed_source_address?("3ffe:505:2:0::1")).to be(true) |
| 135 | + expect(subject.allowed_source_address?("3ffe:505:2::2")).to be(false) |
| 136 | + end |
| 137 | + |
| 138 | + it "checks multiple IPv4 addresses" do |
132 | 139 | subject.critical_options["source-address"] = "1.1.1.1,2.2.2.2" |
133 | 140 | expect(subject.allowed_source_address?("1.1.1.1")).to be(true) |
134 | 141 | expect(subject.allowed_source_address?("2.2.2.2")).to be(true) |
135 | 142 | expect(subject.allowed_source_address?("3.3.3.3")).to be(false) |
136 | 143 | end |
137 | 144 |
|
138 | | - it "checks single CIDR range" do |
| 145 | + it "checks multiple IPv6 addresses" do |
| 146 | + subject.critical_options["source-address"] = "3ffe:505:2::1,3ffe:505:2::2" |
| 147 | + expect(subject.allowed_source_address?("3ffe:505:2::1")).to be(true) |
| 148 | + expect(subject.allowed_source_address?("3ffe:505:2::2")).to be(true) |
| 149 | + expect(subject.allowed_source_address?("3ffe:505:2::3")).to be(false) |
| 150 | + end |
| 151 | + |
| 152 | + it "checks single IPv4 CIDR range" do |
139 | 153 | subject.critical_options["source-address"] = "1.1.1.0/24" |
140 | 154 | expect(subject.allowed_source_address?("1.1.1.1")).to be(true) |
141 | 155 | expect(subject.allowed_source_address?("1.1.1.2")).to be(true) |
142 | 156 | expect(subject.allowed_source_address?("2.2.2.2")).to be(false) |
143 | 157 | expect(subject.allowed_source_address?("1.1.2.1")).to be(false) |
144 | 158 | end |
145 | 159 |
|
| 160 | + it "checks single IPv6 CIDR range" do |
| 161 | + subject.critical_options["source-address"] = "3ffe:505:2::/112" |
| 162 | + expect(subject.allowed_source_address?("3ffe:505:2::1")).to be(true) |
| 163 | + expect(subject.allowed_source_address?("3ffe:505:2::2")).to be(true) |
| 164 | + expect(subject.allowed_source_address?("3ffe:505:2::1:1")).to be(false) |
| 165 | + end |
| 166 | + |
146 | 167 | it "checks multiple CIDR ranges" do |
147 | | - subject.critical_options["source-address"] = "1.1.1.0/24,2.2.2.0/24" |
| 168 | + subject.critical_options["source-address"] = "1.1.1.0/24,3ffe:505:2::/112" |
148 | 169 | expect(subject.allowed_source_address?("1.1.1.1")).to be(true) |
149 | | - expect(subject.allowed_source_address?("2.2.2.2")).to be(true) |
150 | | - expect(subject.allowed_source_address?("3.3.3.3")).to be(false) |
| 170 | + expect(subject.allowed_source_address?("3ffe:505:2::1")).to be(true) |
| 171 | + expect(subject.allowed_source_address?("2.2.2.2")).to be(false) |
| 172 | + expect(subject.allowed_source_address?("3ffe:505:2::1:1")).to be(false) |
151 | 173 | end |
152 | 174 |
|
153 | 175 | it "returns false for bad addresses" do |
|
157 | 179 |
|
158 | 180 | it "allows any address if option is missing" do |
159 | 181 | expect(subject.allowed_source_address?("1.1.1.1")).to be(true) |
| 182 | + expect(subject.allowed_source_address?("3ffe:505:2::1")).to be(true) |
160 | 183 | end |
161 | 184 | end |
162 | 185 |
|
|
0 commit comments