networkContainerLoad function

XchgNetwork networkContainerLoad(
  1. Uint8List zipFileBS,
  2. String publicKeyBase64
)

Implementation

XchgNetwork networkContainerLoad(Uint8List zipFileBS, String publicKeyBase64) {
  var publicKeyBS = base64Decode(publicKeyBase64);
  var publicKey = decodePublicKeyFromPKIX(publicKeyBS);

  Uint8List networkFileBS64 =
      networkContainerUnpack(zipFileBS, NetworkContainerFileNetwork);
  Uint8List signatureFileBS64 =
      networkContainerUnpack(zipFileBS, NetworkContainerFileSignature);
  var networkFileBS = networkFileBS64;
  var signatureFileBS = base64Decode(utf8.decode(signatureFileBS64));

  var verifyResult = rsaVerify(publicKey, networkFileBS, signatureFileBS);
  if (!verifyResult) {
    throw "wrong signature";
  }

  var networkFileString = utf8.decode(networkFileBS);
  var json = jsonDecode(networkFileString);

  var network = XchgNetwork.fromJson(json);

  return network;
}