     }
 }
 
-private func toUInt32Array(slice: ArraySlice<UInt8>) -> Array<UInt32> {
+fileprivate func toUInt32Array(slice: ArraySlice<UInt8>) -> Array<UInt32> {
     var result = Array<UInt32>()
     result.reserveCapacity(16)
     for idx in stride(from: slice.startIndex, to: slice.endIndex, by: MemoryLayout<UInt32>.size) {


extension AESCipher {

    convenience public init(key: String, iv: String) throws {
        guard let kkey = key.data(using: String.Encoding.utf8, allowLossyConversion: false)?.bytes,
            // swiftlint:disable conditional_binding_cascade
            let iiv = iv.data(using: String.Encoding.utf8, allowLossyConversion: false)?.bytes else {

    }
}

final class AES256CBC {

    /// returns optional encrypted string via AES-256CBC
    /// automatically generates and puts a random IV at first 16 chars
    /// the password must be exactly 32 chars long for AES-256
    class func encryptString(_ str: String, password: String) -> String? {
        if !str.isEmpty && password.characters.count == 32 {
            let iv = randomText(16)
            let key = password
