闲来无事,方便不能上tg的小伙伴,

做了一个iOS的端对端加密的keyboard,

理论上可以应用于所有app。

简单使用方式:

下载地址:https://fir.im/k1vh

pwd: test124

1)创建一对rsa密钥,或者使用这个脚本快速创建, https://gist.github.com/lvjian700/635368d6f1e421447680

保留der公钥和p12格式的私钥,

公钥名字随便起无所谓,自己保存,私钥命名按下列方式,galenzhao.pwd123456.p12,发送给其他人用来decode,

我自己的私钥,想要decode的自行下载,p12 file

通过.分为三部分,1)在发送加密文本时保留的前缀,用于decode时匹配对应私钥,建议使用自己的username尽量保持唯一,否则其他人decode时无法匹配私钥数据。

第二部分为p12的密码,

请使用这个脚本创建,https://gist.github.com/galenzhao/09e78ca06083d48b4504a8c20fccba57

iOS上无法获取仅有私钥的p12,keyref,所以直接导出ASN.1 的DER格式 公私钥。

自己的公钥名字随便起,推荐username.der,私钥给出去的时候需要按照如下命名方式,

username.private.der,前边username随便起,尽量唯一,后边.private.der为固定后缀,用于导入keychain。

我自己的私钥,想要decode的自行下载,der file

2)使用itunes等,将公钥导入到app folder,同时想要支持decode他人的私钥导入

3)在系统设置中把键盘添加上,同时打开完全访问,因为需要获取剪贴板来decode,app无联网,无需担心风险。

4)打开app,进入config,第一个public填入导入的公钥名字,

第二个private prefix填写上私钥的名字的第一部分,也就是加密完string的prefix,

后边两个switch是当decode时候,将结果输入到当前textfield还是 toast一下,随意配置。

最后点 gen rsakey,将会把app folder的公私钥导入app内部存储,这样itunes就不能再次导出这些文件。

5)进入其他app,可以直接使用这个键盘输入只支持英文,或者其他键盘输入其他文本,然后想要加密发送时,

切换成这个键盘,在文本框光标处于最末尾时,点击lock按钮,将自动把文本框内容替换成加密后的,

6)当需要decode的时候,把加密文本长按复制,注意要保持完整。然后在键盘点unlock按钮,即可。