Skip to content

Commit

Permalink
change to ensure that roa_asn and observed_asn are both ints before t…
Browse files Browse the repository at this point in the history
…hey are compared
  • Loading branch information
ssw committed Jan 6, 2023
1 parent 175db2f commit dc1abcb
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 9 deletions.
10 changes: 6 additions & 4 deletions docker_container_version/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ def return_rov_status(roa_prefix, roa_maxlen, roa_asn, prefix, origin_asn):
ip_prefix = ipaddress.ip_network(prefix)
if not ip_prefix.subnet_of(roa_ip_prefix):
return "error: prefix not covered by ROA"
if ip_prefix.subnet_of(roa_ip_prefix) and roa_maxlen >= ip_prefix.prefixlen and roa_asn == origin_asn:

if ip_prefix.subnet_of(roa_ip_prefix) and int(roa_maxlen) >= int(ip_prefix.prefixlen) and int(roa_asn) == int(origin_asn):
return "valid"
else:
return "invalid"
Expand Down Expand Up @@ -125,18 +126,18 @@ def index():
roa_ip_prefix = roa_ip_prefix.strip()
# Validate the IP prefix
if not is_valid_prefix(roa_ip_prefix):
return 'Invalid IP prefix'
return f"\"{roa_ip_prefix}\" is an Invalid IP prefix"

origin_asn = request.form['origin_asn']
origin_asn = origin_asn.strip()
# Validate the origin ASN
if not is_valid_asn(origin_asn):
return 'Invalid origin ASN'
return f"\"{origin_asn}\" is an Invalid origin ASN"
roa_prefix_maxlength = request.form['prefix_maxlength']
roa_prefix_maxlength = roa_prefix_maxlength.strip()
# Validate the prefix maxlength
if not is_valid_prefix_maxlength(roa_ip_prefix, roa_prefix_maxlength):
return 'Invalid prefix maxlength'
return f"\"{roa_prefix_maxlength}\" is an Invalid prefix maxlength"

roa_ip_prefix = request.form['ip_prefix']
roa_prefix_maxlength = int(request.form['prefix_maxlength'])
Expand All @@ -154,5 +155,6 @@ def index():
return render_template('index.html')

if __name__ == '__main__':
print("new version - ssw")
app.run(port=8000, host='0.0.0.0')

9 changes: 9 additions & 0 deletions docker_container_version/new.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
cp ../main.py .
cp ../templates/* templates
# docker build -t roa-checker:latest .
docker buildx build \
--platform linux/amd64,linux/arm64,linux/arm/v7 \
-t stevenisfine/roa_checker:latest \
--push \
.

4 changes: 2 additions & 2 deletions docker_container_version/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@
<p>This app queries the stat.ripe.net to determine if a RPKI-ROA created with the following information would likely agree (i.e., not evaluate as invalid) for routes currently seen in the Internet</p>
<form method="post">
<label for="ip_prefix">IP Prefix:</label>
<input type="text" name="ip_prefix" required>
<input type="text" name="ip_prefix" placeholder="10.1.0.0/16" required>
<label for="prefix_maxlength">Prefix Maxlength:</label>
<input type="number" name="prefix_maxlength" required>
<input type="number" placeholder="24" name="prefix_maxlength" required>
<label for="origin_asn">Origin ASN:</label>
<input type="text" name="origin_asn" required>
<input type="submit" value="Submit">
Expand Down
4 changes: 3 additions & 1 deletion main.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ def return_rov_status(roa_prefix, roa_maxlen, roa_asn, prefix, origin_asn):
ip_prefix = ipaddress.ip_network(prefix)
if not ip_prefix.subnet_of(roa_ip_prefix):
return "error: prefix not covered by ROA"
if ip_prefix.subnet_of(roa_ip_prefix) and roa_maxlen >= ip_prefix.prefixlen and roa_asn == origin_asn:

if ip_prefix.subnet_of(roa_ip_prefix) and int(roa_maxlen) >= int(ip_prefix.prefixlen) and int(roa_asn) == int(origin_asn):
return "valid"
else:
return "invalid"
Expand Down Expand Up @@ -154,5 +155,6 @@ def index():
return render_template('index.html')

if __name__ == '__main__':
print("new version - ssw")
app.run(port=8000, host='0.0.0.0')

4 changes: 2 additions & 2 deletions templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@
<p>This app queries the stat.ripe.net to determine if a RPKI-ROA created with the following information would likely agree (i.e., not evaluate as invalid) for routes currently seen in the Internet</p>
<form method="post">
<label for="ip_prefix">IP Prefix:</label>
<input type="text" name="ip_prefix" required>
<input type="text" name="ip_prefix" placeholder="10.1.0.0/16" required>
<label for="prefix_maxlength">Prefix Maxlength:</label>
<input type="number" name="prefix_maxlength" required>
<input type="number" placeholder="24" name="prefix_maxlength" required>
<label for="origin_asn">Origin ASN:</label>
<input type="text" name="origin_asn" required>
<input type="submit" value="Submit">
Expand Down

0 comments on commit dc1abcb

Please sign in to comment.