diff options
Diffstat (limited to 'WireGuard/Shared/Model/Configuration.swift')
-rw-r--r-- | WireGuard/Shared/Model/Configuration.swift | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/WireGuard/Shared/Model/Configuration.swift b/WireGuard/Shared/Model/Configuration.swift index cbe4271..3e661e6 100644 --- a/WireGuard/Shared/Model/Configuration.swift +++ b/WireGuard/Shared/Model/Configuration.swift @@ -6,9 +6,16 @@ import Foundation @available(OSX 10.14, iOS 12.0, *) class TunnelConfiguration: Codable { var interface: InterfaceConfiguration - var peers: [PeerConfiguration] = [] - init(interface: InterfaceConfiguration) { + let peers: [PeerConfiguration] + init(interface: InterfaceConfiguration, peers: [PeerConfiguration]) { self.interface = interface + self.peers = peers + + let peerPublicKeysArray = peers.map { $0.publicKey } + let peerPublicKeysSet = Set<Data>(peerPublicKeysArray) + if (peerPublicKeysArray.count != peerPublicKeysSet.count) { + fatalError("Two or more peers cannot have the same public key") + } } } |