iOS13未満でCommonCryptoで共通鍵暗号(AES-CBC)を使うプログラミングに関する知見を書きます。モバイルアプリ開発についての情報が多いです。最後にはじめにiOS13未満もサポートするアプリで、共通鍵暗号(AES-CBC)を使うことがありました。Cryptoを使った暗号化処理をSwiftで実装したのですが、その方法がググってもあまり出てこなかったので、ここにまとめます。Target(IPHONEOS_DEPLOYMENT_TARGET)は11.2。開発しているアプリはiOS11.2以上をサポートしています。Encryption(ユーザーが入力したパスワードとsaltを組み合わせて共通鍵を作る方法)ではありません。暗号化するには以下の方法があるのですが、CommonCryptoを採用しました。iOS13以降でのみ使えるため、今回は使えない。公開鍵で暗号化するAPIはあるが、共通鍵で暗号化するAPIはdeprecatedになっている。代わりに使うべきAPIも見当たらない。以下の通り、共通鍵を生成し平文を暗号化して暗号文と共通鍵を一緒に公開鍵で暗号化して出力するAPIはあるようです。単純に共通鍵を渡して共通鍵暗号方式で暗号化するAPIはないようです。Appleのオープンソースライブラリ。Apple公式でも言及されている。