2017-05-09 15 views
1

文字列を暗号化してキーチェーンに保存しようとしています。これは私がこのエラーは、「データに[UINT8]タイプで変換できません」を取得、私は最後の行で暗号化された文字列をキーチェーンに保存する

//Generate RSA private and public keys 
    let parameters: [String: AnyObject] = [ 
     kSecAttrKeyType as String: kSecAttrKeyTypeRSA, 
     kSecAttrKeySizeInBits as String: 1024 as AnyObject 
    ] 
    SecKeyGeneratePair(parameters as CFDictionary, &publicKey, &privateKey) 

    let blockSize = SecKeyGetBlockSize(publicKey!) 
    var messageEncrypted = [UInt8](repeating: 0, count: blockSize) 
    var messageEncryptedSize = blockSize 

    status = SecKeyEncrypt(publicKey!, SecPadding.PKCS1, data, data.characters.count, &messageEncrypted, &messageEncryptedSize) 

    let encryptedString = String(data: messageEncrypted, encoding: .utf8) 

を行っているものです。
私は基本的にそれをキーチェーンに保存できるように、messageEncryptedをStringに変換したいと思っています。
私はこのキーチェーンリブを使用しています - https://github.com/jrendel/SwiftKeychainWrapper
これは私が文字列としてデータを入力する必要があります。
ご協力いただければ幸いです。私は暗号化されたデータをキーチェーンに保存することは方法ではないかもしれないが、それはクライアントの要求であると理解しています。事前に

おかげで

答えて

1

必要とされているすべてのDataインスタンスに[UInt8]からあなたmessageEncryptedを変換することであるようだ、とfortunatelly fitting initializerがあります:

let encryptedData = Data(bytes: messageEncrypted) 
let encryptedString = String(data: encryptedData, encoding: .utf8) 
関連する問題