// // EncryptedMessage.swift // SwiftyRSA // // Created by Lois Di Qual on 5/18/17. // Copyright © 2017 Scoop. All rights reserved. // import Foundation public class EncryptedMessage: Message { /// Data of the message public let data: Data /// Creates an encrypted message with data. /// /// - Parameter data: Data of the encrypted message. public required init(data: Data) { self.data = data } /// Decrypts an encrypted message with a private key and returns a clear message. /// /// - Parameters: /// - key: Private key to decrypt the mssage with /// - padding: Padding to use during the decryption /// - Returns: Clear message /// - Throws: SwiftyRSAError public func decrypted(with key: PrivateKey, padding: Padding) throws -> ClearMessage { let blockSize = SecKeyGetBlockSize(key.reference) var encryptedDataAsArray = [UInt8](repeating: 0, count: data.count) (data as NSData).getBytes(&encryptedDataAsArray, length: data.count) var decryptedDataBytes = [UInt8](repeating: 0, count: 0) var idx = 0 while idx < encryptedDataAsArray.count { let idxEnd = min(idx + blockSize, encryptedDataAsArray.count) let chunkData = [UInt8](encryptedDataAsArray[idx..