     return xored
 }
 
-private func rotateLeft(_ value: UInt8, by: UInt8) -> UInt8 {
+fileprivate func rotateLeft(_ value: UInt8, by: UInt8) -> UInt8 {
     return ((value << by) & 0xFF) | (value >> (8 - by))
 }
 
-private func rotateLeft(_ value: UInt32, by: UInt32) -> UInt32 {
+fileprivate func rotateLeft(_ value: UInt32, by: UInt32) -> UInt32 {
     return ((value << by) & 0xFFFFFFFF) | (value >> (32 - by))
 }
 
-private protocol BitshiftOperationsType {
+fileprivate protocol BitshiftOperationsType {
     static func << (lhs: Self, rhs: Self) -> Self
 }
 
-private protocol ByteConvertible {
+fileprivate protocol ByteConvertible {
     init(_ value: UInt8)
     init(truncatingBitPattern: UInt64)
 }

import Foundation

/// cross-platform random numbers generator
public struct Random {
    #if os(Linux)
    static var initialized = false
    #endif


final private class AESCipher {

    enum Error: Swift.Error {
        case blockSizeExceeded
        case dataPaddingRequired
        case invalidKeyOrInitializationVector
