算法API文档 - HeavenDuke/BattleSAC GitHub Wiki

Authentication

用途: 用于第一步 - 身份认证
输入:

字段名 类型 含义 备注
message String 用私钥加密(签名)后的密文
correct String 如果能够正确解密,所得到的明文
pubs Array(String) 所有己方人员的公钥

输入样例:

{
	"message": "...",
	"correct": "...",
	"pubs": [
		"...",
		"...",
		"...",
		"..."
	]
}

输出:

字段名 类型 含义 备注
valid Int 能够正常解密的公钥对应在输入数组中的下标 如果没有则为-1
result Array(String) 经过解密后得到的明文 也有可能是乱码

输出样例:

{
        "valid": -1,
	"result": [
		"...",
		"...",
		"...",
		"..."
	]
}

Millionaire

用途: 用于指挥官的选举

输入:

字段名 类型 含义 备注
user1 JSON 第一名用户的基本信息 包括uid与title
user2 JSON 第二名用户的基本信息 包括uid与title

输入样例:

{
	"message": "...",
	"correct": "...",
	"pubs": [
		"...",
		"...",
		"...",
		"..."
	]
}

输出:

字段名 类型 含义 备注
valid Int 能够正常解密的公钥对应在输入数组中的下标 如果没有则为-1
result Array(String) 经过解密后得到的明文 也有可能是乱码

输出样例:

{
	"result": [
		"...",
		"...",
		"...",
		"..."
	]
}

Voting

Generate Lock

用途: 用于为一个补给箱生成密码锁

输入:

字段名 类型 含义 备注
scale Int 团队总人数

输入样例:


{
	"scale": 5
}

输出:

字段名 类型 含义 备注
lock Int 补给箱对应的密码
minOpen Int 开启补给箱所需要的最少人数
keys Array(Array(int)[2]) 每个人所持有的点坐标

输出样例:

{
	"lock": 1234,
	"minOpen": 3,
	"keys": [
		[1, 1494],
		[2, 1942],
		[3, 2578],
		[4, 3402],
		[5, 4414],
	]
}

Open Case

用途: 用于开箱子

输入:

字段名 类型 含义 备注
keys Array(Array(int)[2]) 参与开启行为的所有人所持有的点坐标

输入样例:

{
	"keys": [
		[1, 1494],
		[2, 1942],
		[3, 2578],
		[4, 3402],
		[5, 4414],
	]
}

输出:

字段名 类型 含义 备注
valid Boolean 是否成功开启 是对应true

输出样例:

{
	"valid": true
}