RegisterAndPlanner XML Database that offers a web service through which is possible to perform the proposed queries.
It supports the following queries:
- two_nsf_comparison.xq: it receives two NSF names and checks if their Security Capability Sets are: contained each other, equivalent, or their intersection is empty.
- one_nsf_comparison.xq: it receives an NSF name and returns the list of NSFs that provide the same Security Capabilities provided by the input NSF.
- rule_nsf_search.xq: it receives the path of a RuleInstance file and returns the NSF that is able to implement the policies stated within the above file.
- capa_set_search.xq: it receives a set of Security Capabilities and returns which NSF provides those items.
- overall_search.xq: it returns the list of all the available Security Capabilities arranged by type.
In order to run the proposed RegisterAndPlanner Database, Docker is required and it can be found here.
Clone the current repository:
git clone git@github.com:torsec/NSF-Catalogue.git
Move into project folder:
cd NSF-Catalogue
Build Dockerfile:
docker build -t register_and_planner .
Run the Dockerfile containing RegisterAndPlanner server:
docker run -p 8984:8984 register_and_planner
At this point, RegisterAndPlanner server is listening on http://localhost:8984
.
Examples of how to curl
the RegisterAndPlanner Server.
For two_nsf_comparison.xq:
curl -i "http://localhost:8984/rest?run=two_nsf_comparison.xq&nsf_a=StrongSwan&nsf_b=XFRM" -u admin:admin
.
For one_nsf_comparison.xq:
curl -i "http://localhost:8984/rest?run=one_nsf_comparison.xq&nsf_in=StrongSwan" -u admin:admin
.
For rule_nsf_search.xq:
curl -i "http://localhost:8984/rest?run=rule_nsf_search.xq&rule_instance_path=Strongswan_RuleInstance.xml" -u admin:admin
.
For capa_set_search.xq:
curl -i "http://localhost:8984/rest?run=capa_set_search.xq&capa_set=SourcePortConditionCapability,IpDestinationAddressConditionCapability" -u admin:admin
, here Security Capabilities have to be provided with first capital letters and the separator is ,
without spaces.
For overall_search.xq:
curl -i "http://localhost:8984/rest?run=overall_search.xq" -u admin:admin
.