MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework/Modules Modules cd /System/Library/Frameworks/Security.framework ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework Headers Headers ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework
cgo编译时,会到如下两个目录搜索相关文件: /System/Library/Frameworks/CoreFoundation.framework /System/Library/Frameworks/Security.framework Library/Frameworks/CoreFoundation.framework/Versions/A/Modules Modules 再进入/System/Library/Frameworks/Security.framework 然后执行下面两条命令: sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Security.framework Headers sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Security.framework
(一般用于签名和验证,私钥加密相当于签名,公钥解密相当于验证) 苹果提供的Security.framework,有以下四个方法: SecKeyEncrypt—encrypts a block of data 附录 iOS使用Security.framework进行RSA 加密解密签名和验证签名 http://blog.methodname.com/da-zao-yin-xing-ji-jia-mi/
开发者需要在工程中链接上:SystemConfiguration.framework, libz.dylib, libsqlite3.0.dylib, libc++.dylib, Security.framework
Target -> Build Phases -> Link Binary With Libraries -> + -> 选择CFNetwork.framework、libxml2.dylb、Security.framework
) 拖拽 Bugly.framework 文件到 Xcode 工程内(请勾选 Copy items if needed 选项) 添加依赖库 SystemConfiguration.framework Security.framework
signature; 把文件和signature打包成zip包,下发到客户端; 客户端解压zip,得到文件和签名串signature,对文件进行hash,加载本地公钥,把hash值、signature、公钥传给Security.framework ; 用Security.framework提供的SecKeyRawVerify方法对hash值、signature、公钥进行验证,如果通过则表示文件未修改。
而操作系统层面则苹果公司通过其提供的Security.framework而android则通过com.java.security框架来提供安全的支撑。
苹果公司建议,开发人员尽快将使用旧版 TLS 协议的应用程序升级到 TLS 1.2 或更高版本,或者直接切换到TLS 1.3,因为它比1.2 更快、更安全,并从App 中删除以下已弃用的 Security.framework
CoreFoundation (compatibility version 150.0.0, current version 1445.12.0) 4 /System/Library/Frameworks/Security.framework CoreFoundation (compatibility version 150.0.0, current version 1445.12.0) 4 /System/Library/Frameworks/Security.framework
那么,如何在应用里使用使用keyChain呢,我们需要导入Security.framework ,keychain的操作接口声明在头文件SecItem.h里。 keychain常用操作的封装类,在官网上下载了GenericKeychain项目后,只需要把“KeychainItemWrapper.h”和“KeychainItemWrapper.m”拷贝到我们项目,并导入Security.framework 清空设置 [wrapper resetKeychainItem]; 其中方法“- (void)setObject:(id)inObject forKey:(id)key;”里参数“forKey”的值应该是Security.framework
首先我们把XMPP拉进工程,然后必须导入的几个框架: CFNetwork.framework Security.framework libxml2.dylib libresolv.dylib
CoreFoundation (compatibility version 150.0.0, current version 1445.12.0) 4 /System/Library/Frameworks/Security.framework CoreFoundation (compatibility version 150.0.0, current version 1445.12.0) 4 /System/Library/Frameworks/Security.framework
所以我引入的库也相对多一些,大家可以不用导入我这么多的) SystemConfiguration.framework libz.dylib libsqlite3.0.dylib libc++.dylib Security.framework
Security.framework:包含管理证书、公钥私钥以及信任策略的接口。 看一下下面示意图。
需要在Build Phases中Link Security.framework 4.修复若干小问题。
CoreTelephony.framework SystemConfiguration.framework CoreGraphics.framework Foundation.framework UIKit.framework Security.framework
栏目下添加如下依赖项: libz.dylib - 用于对上报数据进行压缩 libstdc++.dylib - 用于支持c++,如果你的项目需依赖libc++.dylib,请更新替换framework Security.framework
需要在Build Phases中Link Security.framework 4.修复若干小问题。
libz.dylib QuartzCore.framework MediaPlayer.framework MobileCoreServices.framework OpenGLES.framework Security.framework