Support multiple mrEnclave values for consensus.
This commit is contained in:
parent
b953104659
commit
0620651111
@ -177,6 +177,7 @@ extension MobileCoinAPI {
|
||||
private enum AttestationType {
|
||||
case mrSigner(mrSignerData: Data)
|
||||
case mrEnclave(mrEnclaveData: Data)
|
||||
case mrEnclaves(mrEnclaveDatas: [Data])
|
||||
case mrSignerAndMrEnclave(mrSignerData: Data, mrEnclaveData: Data)
|
||||
}
|
||||
|
||||
@ -219,6 +220,14 @@ extension MobileCoinAPI {
|
||||
}
|
||||
}
|
||||
|
||||
private static func buildMrEnclaves(mrEnclaveDatas: [Data],
|
||||
attestationInfo: AttestationInfo) throws -> [MobileCoin.Attestation.MrEnclave] {
|
||||
try mrEnclaveDatas.map {
|
||||
try buildMrEnclave(mrEnclaveData: $0,
|
||||
attestationInfo: attestationInfo)
|
||||
}
|
||||
}
|
||||
|
||||
private static func buildAttestation(attestationType: AttestationType,
|
||||
attestationInfo: AttestationInfo) throws -> MobileCoin.Attestation {
|
||||
switch attestationType {
|
||||
@ -230,6 +239,10 @@ extension MobileCoinAPI {
|
||||
let mrEnclave = try buildMrEnclave(mrEnclaveData: mrEnclaveData,
|
||||
attestationInfo: attestationInfo)
|
||||
return MobileCoin.Attestation(mrEnclaves: [mrEnclave])
|
||||
case .mrEnclaves(let mrEnclaveDatas):
|
||||
let mrEnclaves = try buildMrEnclaves(mrEnclaveDatas: mrEnclaveDatas,
|
||||
attestationInfo: attestationInfo)
|
||||
return MobileCoin.Attestation(mrEnclaves: mrEnclaves)
|
||||
case .mrSignerAndMrEnclave(let mrSignerData, let mrEnclaveData):
|
||||
let mrSigner = try buildMrSigner(mrSignerData: mrSignerData,
|
||||
attestationInfo: attestationInfo)
|
||||
@ -256,14 +269,14 @@ extension MobileCoinAPI {
|
||||
}
|
||||
}
|
||||
|
||||
private static func buildAttestationConfig(mrEnclaveConsensus: Data,
|
||||
private static func buildAttestationConfig(mrEnclaveConsensus: [Data],
|
||||
mrEnclaveFogView: Data,
|
||||
mrEnclaveFogKeyImage: Data,
|
||||
mrEnclaveFogMerkleProof: Data,
|
||||
mrEnclaveFogReport: Data) -> OWSAttestationConfig {
|
||||
do {
|
||||
return OWSAttestationConfig(
|
||||
consensus: try buildAttestation(attestationType: .mrEnclave(mrEnclaveData: mrEnclaveConsensus),
|
||||
consensus: try buildAttestation(attestationType: .mrEnclaves(mrEnclaveDatas: mrEnclaveConsensus),
|
||||
attestationInfo: .consensus),
|
||||
fogView: try buildAttestation(attestationType: .mrEnclave(mrEnclaveData: mrEnclaveFogView),
|
||||
attestationInfo: .fogView),
|
||||
@ -289,7 +302,7 @@ extension MobileCoinAPI {
|
||||
let mrEnclaveFogView = Data.data(fromHex: "ddd59da874fdf3239d5edb1ef251df07a8728c9ef63057dd0b50ade5a9ddb041")!
|
||||
let mrEnclaveFogReport = Data.data(fromHex: "709ab90621e3a8d9eb26ed9e2830e091beceebd55fb01c5d7c31d27e83b9b0d1")!
|
||||
let mrEnclaveFogLedger = Data.data(fromHex: "511eab36de691ded50eb08b173304194da8b9d86bfdd7102001fe6bb279c3666")!
|
||||
return buildAttestationConfig(mrEnclaveConsensus: mrEnclaveConsensus,
|
||||
return buildAttestationConfig(mrEnclaveConsensus: [mrEnclaveConsensus],
|
||||
mrEnclaveFogView: mrEnclaveFogView,
|
||||
mrEnclaveFogKeyImage: mrEnclaveFogLedger,
|
||||
mrEnclaveFogMerkleProof: mrEnclaveFogLedger,
|
||||
@ -302,7 +315,10 @@ extension MobileCoinAPI {
|
||||
}
|
||||
|
||||
static var signalTestNet: OWSAttestationConfig {
|
||||
let mrEnclaveConsensus = Data.data(fromHex: "3dc0c6b273ca16c50d3d94d6e1042998980cf977a79521c6d87366cddc70db03")!
|
||||
let mrEnclaveConsensus = [
|
||||
Data.data(fromHex: "9268c3220a5260e51e4b586f00e4677fed2b80380f1eeaf775af60f8e880fde8")!,
|
||||
Data.data(fromHex: "3dc0c6b273ca16c50d3d94d6e1042998980cf977a79521c6d87366cddc70db03")!
|
||||
]
|
||||
let mrEnclaveFogView = Data.data(fromHex: "4e598799faa4bb08a3bd55c0bcda7e1d22e41151d0c591f6c2a48b3562b0881e")!
|
||||
let mrEnclaveFogReport = Data.data(fromHex: "185875464ccd67a879d58181055383505a719b364b12d56d9bef90a40bed07ca")!
|
||||
let mrEnclaveFogLedger = Data.data(fromHex: "7330c9987f21b91313b39dcdeaa7da8da5ca101c929f5740c207742c762e6dcd")!
|
||||
|
||||
Loading…
Reference in New Issue
Block a user