AFNetworking3.1.0源码分析(十)之AFSecurityPolicy

AFSecurityPolicy提供以下功能:

1:创建安全策略

2:创建数字证书(客户端本地预置号的用来验证服务器的证书)

3:验证服务器证书的有效性

4:支持序列化


下面分逐个介绍这些功能:

AF提供的安全策略枚举值:

typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {
    AFSSLPinningModeNone,//客户端本地预置证书不对服务器证书进行任何验证
    AFSSLPinningModePublicKey,//客户端本地预置证书对服务器证书进行公钥验证
    AFSSLPinningModeCertificate,//客户端本地预置证书不对服务器证书进行严格的证书验证
};

一:AF提供了3种创建安全策略的方法:

/**
 默认完全策略, 不允许无效证书, 验证域名, 不验证固定证书或公共密钥
 */
+ (instancetype)defaultPolicy;

/**
 使用指定的模式(AFSSLPinningMode)创建安全策略
 */
+ (instancetype)policyWithPinningMode:(AFSSLPinningMode)pinningMode;


/**
 使用特定的模式和特定的证书创建安全策略集合
 */
+ (instancetype)policyWithPinningMode:(AFSSLPinningMode)pinningMode withPinnedCertificates:(NSSet <NSData *> *)pinnedCertificates;

二:创建证书集合

/**
 创建指定目录下面的证书集合

 */
+ (NSSet <NSData *> *)certificatesInBundle:(NSBundle *)bundle;


三:验证服务器证书:

/**
 当响应来自服务器身份验证的挑战时需要条用此方法根据安全策略来指定服务器信任是否应该被接受

 @param serverTrust The X.509 certificate trust of the server. 符合X.509标准的服务器证书信任
 @param domain 受信的服务域名,如果为空,此域名将不被验证
 */
- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
                  forDomain:(nullable NSString *)domain;

四:序列化支持实现:NSSecureCoding 和 NSCopying协议:

NSSecureCoding:

+ (BOOL)supportsSecureCoding;
- (instancetype)initWithCoder:(NSCoder *)decoder;
- (void)encodeWithCoder:(NSCoder *)coder;


NSCopying:

- (instancetype)copyWithZone:(NSZone *)zone


下篇将对以上几点详细的分析


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值