Copyright © 2012-2015 by THALES.
Copyright © 2014-2015 by ZHAW.
This is the Open Specification of the REST API of the CyberSecurity GE. It contains the API used between a CyberSecurity GE Server and a CyberSecurity GE Client, and the one of CyberSecurity P2DS.
CyberCAPTOR is the reference implementation of the FIWARE CyberSecurity Generic Enabler.
This is the Release 4 of the GE Open API Specification.
This specification is licensed under the FIWARE Open Specification License.
This is the specification for Open API of the the FIWARE Cybersecurity Generic Enabler. First will be presented the API of the Cybersecurity GE that is used between the server (Cyber inputs generation, scored attack paths engine and remediation calculation) and the visualization client. Then will be presented the part of the Cybersecurity GE that is concerned with managing groups of peers for privacy-preserving data sharing, or P2DS. P2DS is achieved through secure multiparty computation, or SMCP.
The CyberSecurity GE Open API introduces three main concepts:
The attack graph engine is a Topological Vulnerability Analyser (TVA) able to generate, from the output of Cyber Data Extraction (the parts related to the network topology and vulnerabilities of the information system) the attack graph regrouping all possible attack paths. This engine also combines the attack graph with the Common Vulnerability Scoring System (CVSS), to provide a quantitative analysis of individual vulnerabilities.
The main attack paths of the attack graph provided by the Attack Graph Engine are processed by a scoring function that computes a score for each attack path based on its business impact and probability of occurrence. The score basically represents the risk level.
The remediation engine helps to mitigate the risks and to take efficient actions in accordance with the security policy by computing the different means to break the attack graph (so-called remediations) according to the AND/OR graph formalism and estimating a cost for each one. Once a security operator can actually select a specific attack path that he/she wants to prevent and get all the relevant alternatives of remediation.
The main issue is the following: when organisations are asked to share data about security, they are naturally reluctant to do so, because revealing this data may lead to loss of trust or it may reveal details of the organisation's business that a competitor could use to its advantage. On the other hand, sharing data could be mutually beneficial. For example, when an organisation is the victim of a denial-of-service attack, it is useful to know whether other organisations are also a victim. This is where privacy-preserving data sharing comes in.
The technology for P2DS, called SEPIA was developed as part of a PhD thesis at ETH Zurich.
In this API, there are several instances where a registration code is transported in the URL. This registration code is an authentication token; everyone with that authentication token can access the service. It is therefore a very, very good idea to use https on these calls, and probably https everywhere.
The main terms used for the scored attack paths are:
Let's say we have three organisations, called Domain 1, Domain 2, and Domain 3 in the graphic, that want to know the total number of attacks seen in the last 24 hours, with a granularity of five minutes. In mathematical terms, what these organisations want is x1 + x2 + x3, where x1, x2, and x3 are vectors with 24*60/5 = 288 elements, and they want to do this without revealing their own xi to any of the other domains. Here is how the three domains could use P2DS for their needs.
First, each domain provides an input peer. This is a service that is run by each domain, which knows the original, private xi from domain i.
Next, someone provides a number of privacy peers. These services can be run by anyone; they never have access to unencrypted data, so it doesn't matter who runs them. The only thing that matters is that the privacy peers are for the most part diligent, i.e., faithfully carry out their assigned task. The SEPIA protocol can tolerate a small number of malicious peers; only when more than this number of peers are malicious will the computation be deemed unsuccessful. The privacy peers execute a multi-round protocol in which they exchange encrypted information and perform computations on these encrypted values to get yet more encrypted values. No one learns the cleartext values of these encrypted vectors, not the privacy peers, not the domains.
But when the computation is finished, the end result becomes available in the clear and each domain can learn the value of x1 + x2 + x3. For example, Domain 1 learns the value of x1 + x2 + x3, but knows nothing about x2 or x3, except, trivially, their sum.
In our GE, the privacy peers are provided by the domains.
A final component of our contribution is the group manager. This is the service that knows which input peers and which privacy peers should cooperate in a computation, which keeps the peers' public key certificates, and which provides SEPIA configuration when it is time to start the computation. It does not have to be especially trusted (none of the data it has is particularly secret) but it must be authentic, in the sense that the data it keeps should be protected against unauthorised alteration.
There are a few caveats in using SEPIA:
All the interfaces described by this specification are mandatory and must be implemented in order to be compliant with.
This group of REST calls contains the API calls that do not need the /initialize
call that loads the vulnerability and remediation database and generates the attack graph and the attack paths.
Get REST API version information. Generally useful to test that the installation is working.
This group contains the calls related to the configuration (remediation cost parameters...).
Get the global remediation cost parameters.
Set the global remediation cost parameters.
Get the operational cost parameters for a snort rule.
Set the operational cost parameters for a snort rule.
Get the operational cost parameters for a firewall rule.
Set the operational cost parameters for a firewall rule.
Get the operational cost parameters for a patch.
Set the operational cost parameters for a patch.
REST API calls related to IDMEF alerts. See https://www.ietf.org/rfc/rfc4765.txt for more IDMEF alerts information.
From an XML IDMEF file containing alerts.
This group contains thte API calls after the /initialize
call that loads the vulnerability and remediation database and generates the attack graph and the attack paths.
Generates the attack graph and initializes the main objects needed by other API calls (database, attack graph, attack paths,...).
From the data on disk (.csv inputs files and Nessus vulnerability scan)
From an XML topology file containing all information about network topology, firewalling, routing configuration, vulnerabilities... See https://github.com/fiware-cybercaptor/cybercaptor-data-extraction/blob/master/doc/topology-file-specifications.md for the exhaustive description of the topology file.
Get the XML topology (for example, this can be used to backup the topology, and to load it again with /initialize)
This group contains the calls related to hosts, after initialization.
Get the list of hosts with their security requirements.
Set the hosts and their security_requirements.
This group contains the calls related to the attack graph, after initialization.
Get the attack graph in its topological form.
This group contains the calls related to the attack paths, after initialization.
Get the attack path {id}.
ParametersGet the attack path {id} as a topological graph.
ParametersGet the remediations of the attack path {id}.
ParametersSimulate the remediation {id_remediation} of the path {id}, and compute the new attack graph.
ParametersValidate that the remediation {id_remediation} of the path {id} has been applied.
ParametersGet the IDMEF alerts that have been received by the server, and not yet sent to this client, and their potential dynamic remediations that could prevent the described attack.
Add a peer to the service and register it at the group management service.
ParametersDelete a peer.
ParametersList all peers.
ParametersThis method can be used to add a single input data set. The target peer must be an input peer.
ParametersThis method can be used to add multiple input data sets. The target peer must be an input peer.
ParametersThis method is called by the peer services automatically. This method will accept messages and verify their integrity.
ParametersCan be manually invoked or by the group management service. Starts the peer.
ParametersCan be manually invoked or by the group management service. Stops the peer.
ParametersThis method sets the verified flag of a peer.
ParametersThis method can be used to upload the public key of a peer.
ParametersThis method can be used to download the current group's configuration the peer is member of.
ParametersThis method can be used to obtain information about the current group the peer is member of.
ParametersThis method can be used to obtain information about a specific group.
ParametersThis method can be used to create a group.
ParametersUsed to register a peer (this method will be called by the peer services automatically).
ParametersGenerate a registration code.
ParametersDelete a group.
ParametersDelete a peer.
ParametersSet the configuration for a group.
ParametersUpdate the status of a peer (the peer services will call this method automatically).
ParametersGet a peer (including registration code).
ParametersStarts all peers member of a group. This method will not start unverified peers.
ParametersStops all peers member of a group.
ParametersDelete a registration (code).
ParametersHeaders
Content-Type: text/plain
Body
4.4
Headers
Content-Type: application/json
Body
{"version":"4.4"}
Headers
Content-Type: application/json
Body
{"global_parameters":{}}
Headers
Content-Type: application/json
Body
{"global_parameters":{"expensesForIT":15000}}
Headers
Content-Type: application/json
Body
{}
Headers
Content-Type: application/json
Body
{"operational_cost_parameters":{}}
Headers
Content-Type: application/json
Body
{"operational_cost_parameters":{"computationPowerCost":12,"skillRateMaintenance":1,"restartDuration":0.2,"usedStorage":1,"storageCost":5,"skillRateTests":0.7,"deploymentDuration":0.5,"businessApplicationsTestsDuration":4,"maintenanceDuration":10,"remediationCost":10,"remediationUninstallDuration":0.5,"usedPower":1,"serviceUnavailabilityDeploymentDuration":0,"skillRateDeployment":2,"workCost":20,"restartCost":0}}
Headers
Content-Type: application/json
Body
{}
Headers
Content-Type: application/json
Body
{"operational_cost_parameters":{}}
Headers
Content-Type: application/json
Body
{"operational_cost_parameters":{"computationPowerCost":12,"skillRateMaintenance":1,"restartDuration":0.5,"usedStorage":0,"storageCost":10,"skillRateTests":1,"deploymentDuration":0.5,"businessApplicationsTestsDuration":6,"maintenanceDuration":0,"remediationCost":0,"remediationUninstallDuration":0.1,"usedPower":0.1,"serviceUnavailabilityDeploymentDuration":0,"skillRateDeployment":1.2,"workCost":20,"restartCost":10}}
Headers
Content-Type: application/json
Body
{}
Headers
Content-Type: application/json
Body
{"operational_cost_parameters":{}}
Headers
Content-Type: application/json
Body
{"operational_cost_parameters":{"computationPowerCost":5,"skillRateMaintenance":1,"restartDuration":0.5,"usedStorage":0,"storageCost":3,"skillRateTests":0.7,"deploymentDuration":3,"businessApplicationsTestsDuration":4,"maintenanceDuration":0.5,"remediationCost":5,"remediationUninstallDuration":1,"usedPower":0,"serviceUnavailabilityDeploymentDuration":0.5,"skillRateDeployment":1.5,"workCost":20,"restartCost":10}}
Headers
Content-Type: application/json
Body
{}
Headers
Content-Type: application/xml
Body
<?xml version="1.0" encoding="UTF-8"?>
<idmef:IDMEF-Message xmlns:idmef="http://iana.org/idmef" version="1.0">
<idmef:Alert messageid="abc123456789">
<idmef:Analyzer analyzerid="bc-sensor01">
<idmef:Node category="dns">
<idmef:name>sensor.example.com</idmef:name>
</idmef:Node>
</idmef:Analyzer>
<idmef:CreateTime ntpstamp="0xbc71f4f5.0xef449129">2000-03-09T10:01:25.93464Z</idmef:CreateTime>
<idmef:Source ident="a1a2" spoofed="yes">
<idmef:Node ident="a1a2-1">
<idmef:Address ident="a1a2-2" category="ipv4-addr">
<idmef:address>192.0.2.200</idmef:address>
</idmef:Address>
</idmef:Node>
</idmef:Source>
<idmef:Target ident="b3b4">
<idmef:Node>
<idmef:Address ident="b3b4-1" category="ipv4-addr">
<idmef:address>192.0.2.50</idmef:address>
</idmef:Address>
</idmef:Node>
</idmef:Target>
<idmef:Target ident="c5c6">
<idmef:Node ident="c5c6-1" category="nisplus">
<idmef:name>lollipop</idmef:name>
</idmef:Node>
</idmef:Target>
<idmef:Target ident="d7d8">
<idmef:Node ident="d7d8-1">
<idmef:location>Cabinet B10</idmef:location>
<idmef:name>Cisco.router.b10</idmef:name>
</idmef:Node>
</idmef:Target>
<idmef:Classification text="Ping-of-death detected">
<idmef:Reference origin="cve">
<idmef:name>CVE-1999-128</idmef:name>
<idmef:url>http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-128</idmef:url>
</idmef:Reference>
</idmef:Classification>
</idmef:Alert>
</idmef:IDMEF-Message>
Headers
Content-Type: application/json
Body
{"success":"IDMEF alerts added successfully"}
Headers
Content-Type: application/json
Body
{"status":"Loaded"}
Headers
Content-Type: application/xml
Body
<topology>
<machine>
<name>linux-user-1</name>
<security_requirement>7</security_requirement>
<interfaces>
<interface>
<name>eth0</name>
<ipaddress>192.168.1.111</ipaddress>
<vlan>
<name>user-lan</name>
<label>user-lan</label>
</vlan>
</interface>
</interfaces>
<routes>
<route>
<destination>0.0.0.0</destination>
<mask>0.0.0.0</mask>
<gateway>192.168.1.111</gateway>
<interface>eth0</interface>
</route>
</routes>
</machine>
<machine>
<name>linux-user-2</name>
<security_requirement>30</security_requirement>
<interfaces>
<interface>
<name>eth0</name>
<ipaddress>192.168.1.112</ipaddress>
<vlan>
<name>user-lan</name>
<label>user-lan</label>
</vlan>
</interface>
</interfaces>
<services>
<service>
<name>mdns</name>
<ipaddress>192.168.1.112</ipaddress>
<protocol>udp</protocol>
<port>5353</port>
<vulnerabilities>
<vulnerability>
<type>remoteExploit</type>
<cve>CVE-2007-2446</cve>
<goal>privEscalation</goal>
<cvss>10.0</cvss>
</vulnerability>
</vulnerabilities>
</service>
</services>
<routes>
<route>
<destination>0.0.0.0</destination>
<mask>0.0.0.0</mask>
<gateway>192.168.1.111</gateway>
<interface>eth0</interface>
</route>
</routes>
</machine>
</topology>
Headers
Content-Type: application/json
Body
{"status":"Loaded"}
Headers
Content-Type: application/xml
Content-Length: 2174
Body
<topology>
<machine>
<name>linux-user-1</name>
<cpe>cpe:/</cpe>
<interfaces>
<interface>
<name>eth0</name>
<vlan>
<name>user-lan</name>
<label>user-lan</label>
</vlan>
<ipaddress>192.168.1.111</ipaddress>
<directly-connected>
<ipaddress>192.168.1.112</ipaddress>
</directly-connected>
</interface>
</interfaces>
<services />
<routes>
<route>
<destination>0.0.0.0</destination>
<mask>0.0.0.0</mask>
<gateway>192.168.1.111</gateway>
<interface>eth0</interface>
</route>
</routes>
<input-firewall>
<default-policy>ACCEPT</default-policy>
</input-firewall>
<output-firewall>
<default-policy>ACCEPT</default-policy>
</output-firewall>
</machine>
<machine>
<name>linux-user-2</name>
<cpe>cpe:/</cpe>
<interfaces>
<interface>
<name>eth0</name>
<vlan>
<name>user-lan</name>
<label>user-lan</label>
</vlan>
<ipaddress>192.168.1.112</ipaddress>
<directly-connected>
<ipaddress>192.168.1.111</ipaddress>
</directly-connected>
</interface>
</interfaces>
<services>
<service>
<name>mdns</name>
<ipaddress>192.168.1.112</ipaddress>
<protocol>TCP</protocol>
<port>5353</port>
<CPE>cpe:/</CPE>
<vulnerabilities>
<vulnerability>
<type>remoteExploit</type>
<goal>privEscalation</goal>
<cve>CVE-2007-2446</cve>
</vulnerability>
</vulnerabilities>
</service>
</services>
<routes>
<route>
<destination>0.0.0.0</destination>
<mask>0.0.0.0</mask>
<gateway>192.168.1.111</gateway>
<interface>eth0</interface>
</route>
</routes>
<input-firewall>
<default-policy>ACCEPT</default-policy>
</input-firewall>
<output-firewall>
<default-policy>ACCEPT</default-policy>
</output-firewall>
</machine>
</topology>
Headers
Content-Type: application/json
Body
{"hosts":[]}
Headers
Content-Type: application/json
Body
{"hosts":[{"security_requirements":[{"metric":"High","name":"sec-req-xml"}],"name":"linux-user-1"},{"security_requirements":[{"metric":"High","name":"sec-req-xml"}],"name":"linux-user-2"}]}
Headers
Content-Type: application/json
Body
{}
Headers
Content-Type: application/json
Body
{"attack_graph":{"arcs":{},"vertices":{}}}
Headers
Content-Type: application/json
Body
{"score":""}
Headers
Content-Type: application/json
Body
{"arcs":{}, "vertices":{}}
Headers
Content-Type: application/json
Body
{"attack_paths":{}}
Headers
Content-Type: application/json
Body
{"number":2}
Headers
Content-Type: application/json
Body
{"attack_path":{}}
Headers
Content-Type: application/json
Body
{"arcs":{}, "vertices":{}}
Headers
Content-Type: application/json
Body
{"remediations":{}}
Headers
Content-Type: application/json
Body
{"attack_graph":{"arcs":{},"vertices":{}}
Headers
Content-Type: application/json
Body
{"success":"The remediation has been validated."}
Headers
Content-Type: application/json
Body
{"alerts":[]}
Headers
Content-Type: application/json
Body
{"finalResultsURL":"http://localhost:12001/p2ds-receiver/demo/receive","peerType":1,"name":"peerhans", "privateKey":"MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDNyjBeP85atxkIfiYqW+0kUB2H3guXcQWXT/tXVktbn3MyUdRmNIL99G3rK1XoGSRAM6js=", "publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=", "registrationCode":"TEST", "groupMgmtURL":"http://localhost:12001/p2ds-group-management/group-mgmt"}
Headers
Content-Type: application/json
Body
{"finalResultsURL":"http://localhost:12001/p2ds-receiver/demo/receive","peerType":1,"name":"peerhans", "privateKey":"MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDNyjBeP85atxkIfiYqW+0kUB2H3guXcQWXT/tXVktbn3MyUdRmNIL99G3rK1XoGSRAM6js=", "publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=", "registrationCode":"TEST", "groupMgmtURL":"http://localhost:12001/p2ds-group-management/group-mgmt"}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"peers":[{"name":"peerhans", "privateKey":"MFECAQAwEAYHKoZIzj0CAQYFK4EEACQEOjA4AgEBBDNyjBeP85atxkIfiYqW+0kUB2H3guXcQWXT/tXVktbn3MyUdRmNIL99G3rK1XoGSRAM6js=", "publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=", "registrationCode":"TEST", "groupMgmtURL":"http://localhost:12001/p2ds-group-management/group-mgmt"}]}
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"peerName":"peerhans","data":"3;4"}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"peerName":"peerhans","data":["3;4","1;1"]}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Body
The data of the message as JSON.
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"gid":1,"lastStatus":0,"peerName":"peerhans","peerType":1,"publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","url":"https://localhost:12001/p2ds-input-peer/peer"}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Body
You need to upload the key as text/plain. The key needs to be transmitted as base64-encoded.
Headers
Content-Type: application/json
Body
{"gid":1,"lastStatus":0,"peerName":"hanspeer","peerType":1,"publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","url":"https://localhost:12001/p2ds-input-peer/peer"}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"field":"1013","gid":"1","maxElement":"1000","mpcProtocol":"additive","numberOfItems":"2","numberOfTimeSlots":"2"}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"peers":[{"gid":1,"lastStatus":0,"peerName":"hanspeer","peerType":1,"publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","url":"https://localhost:12001/p2ds-input-peer/peer"},{"gid":1,"lastStatus":0,"peerName":"peerhans","peerType":1,"publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","url":"https://localhost:12001/p2ds-input-peer/peer"},{"gid":1,"lastStatus":0,"peerName":"ppeer","peerType":2,"publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","url":"https://localhost:12001/p2ds-privacy-peer/peer"},{"gid":1,"lastStatus":0,"peerName":"ppeer2","peerType":2,"publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","url":"https://localhost:12001/p2ds-privacy-peer/peer"},{"gid":1,"lastStatus":0,"peerName":"ppeer3","peerType":2,"publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","url":"https://localhost:12001/p2ds-privacy-peer/peer"}]}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"gid":"1","name":"huhu"}
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"name":"huhu"}
Headers
Content-Type: application/json
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"gid":1,"lastStatus":0,"peerName":"peerhans","peerType":1,"publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","url":"https://localhost:12001/p2ds-input-peer/peer"}
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"gid":"1","registrationCode":"TEST"}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"field":"1013","gid":"1","maxElement":"1000","mpcProtocol":"additive","numberOfItems":"2","numberOfTimeSlots":"2"}
Headers
Content-Type: application/json
Body
{"field":"1013","gid":"1","maxElement":"1000","mpcProtocol":"additive","numberOfItems":"2","numberOfTimeSlots":"2"}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: application/json
Body
{"gid":"1","lastStatus":"1","peerName":"hanspeer","peerType":"1","publicKey":"MH4wEAYHKoZIzj0CAQYFK4EEACQDagAEAJig6xXX4SuME5lRB2ADn7T7CgyH7LXbxy/oS5XhIElBPwz/40cwDAc/VgGbDKa+HGBc/AGzwSlScoCDHc7WA1tSkRUkaW/lL9NbA6gIzJLMw+FV3RPor0vpJIofVcAaV6WI1r99v8Y=","registrationCode":"TEST","url":"https://localhost:12001/p2ds-input-peer/peer"}
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain
Headers
Content-Type: text/plain