├── .gitattributes
├── .gitignore
├── AndroidManifest.xml
├── README.md
├── plugin.xml
├── src
├── android
│ ├── AlipayPlugin.java
│ ├── Base64.java
│ ├── Keys.java
│ ├── PayResult.java
│ ├── SignUtils.java
│ └── libs
│ │ ├── alipaysdk.jar
│ │ ├── alipaysecsdk.jar
│ │ └── alipayutdid.jar
└── ios
│ ├── AlipayPlugin.h
│ ├── AlipayPlugin.m
│ ├── Keys.h
│ ├── alipayUtil
│ ├── Order.h
│ ├── Order.m
│ ├── Util
│ │ ├── DataSigner.h
│ │ ├── DataSigner.m
│ │ ├── DataVerifier.h
│ │ ├── DataVerifier.m
│ │ ├── MD5DataSigner.h
│ │ ├── MD5DataSigner.m
│ │ ├── NSDataEx.h
│ │ ├── NSDataEx.m
│ │ ├── RSADataSigner.h
│ │ ├── RSADataSigner.m
│ │ ├── RSADataVerifier.h
│ │ ├── RSADataVerifier.m
│ │ ├── base64.h
│ │ ├── base64.m
│ │ ├── config.h
│ │ ├── openssl_wrapper.h
│ │ └── openssl_wrapper.m
│ └── openssl
│ │ ├── aes.h
│ │ ├── asn1.h
│ │ ├── asn1_mac.h
│ │ ├── asn1t.h
│ │ ├── bio.h
│ │ ├── blowfish.h
│ │ ├── bn.h
│ │ ├── buffer.h
│ │ ├── camellia.h
│ │ ├── cast.h
│ │ ├── cmac.h
│ │ ├── cms.h
│ │ ├── comp.h
│ │ ├── conf.h
│ │ ├── conf_api.h
│ │ ├── crypto.h
│ │ ├── des.h
│ │ ├── des_old.h
│ │ ├── dh.h
│ │ ├── dsa.h
│ │ ├── dso.h
│ │ ├── dtls1.h
│ │ ├── e_os2.h
│ │ ├── ebcdic.h
│ │ ├── ec.h
│ │ ├── ecdh.h
│ │ ├── ecdsa.h
│ │ ├── engine.h
│ │ ├── err.h
│ │ ├── evp.h
│ │ ├── hmac.h
│ │ ├── idea.h
│ │ ├── krb5_asn.h
│ │ ├── kssl.h
│ │ ├── lhash.h
│ │ ├── md4.h
│ │ ├── md5.h
│ │ ├── mdc2.h
│ │ ├── modes.h
│ │ ├── obj_mac.h
│ │ ├── objects.h
│ │ ├── ocsp.h
│ │ ├── opensslconf.h
│ │ ├── opensslv.h
│ │ ├── ossl_typ.h
│ │ ├── pem.h
│ │ ├── pem2.h
│ │ ├── pkcs12.h
│ │ ├── pkcs7.h
│ │ ├── pqueue.h
│ │ ├── rand.h
│ │ ├── rc2.h
│ │ ├── rc4.h
│ │ ├── ripemd.h
│ │ ├── rsa.h
│ │ ├── safestack.h
│ │ ├── seed.h
│ │ ├── sha.h
│ │ ├── srp.h
│ │ ├── srtp.h
│ │ ├── ssl.h
│ │ ├── ssl2.h
│ │ ├── ssl23.h
│ │ ├── ssl3.h
│ │ ├── stack.h
│ │ ├── symhacks.h
│ │ ├── tls1.h
│ │ ├── ts.h
│ │ ├── txt_db.h
│ │ ├── ui.h
│ │ ├── ui_compat.h
│ │ ├── whrlpool.h
│ │ ├── x509.h
│ │ ├── x509_vfy.h
│ │ └── x509v3.h
│ └── libs
│ ├── AlipaySDK.bundle
│ ├── bar@2x.png
│ ├── refresh@2x.png
│ ├── refresh_click@2x.png
│ ├── shutdown@2x.png
│ └── shutdown_click@2x.png
│ ├── AlipaySDK.framework
│ ├── AlipaySDK
│ ├── Headers
│ │ ├── APayAuthInfo.h
│ │ └── AlipaySDK.h
│ ├── Info.plist
│ └── en.lproj
│ │ └── InfoPlist.strings
│ ├── libcrypto.a
│ └── libssl.a
├── www
└── AlipayPlugin.js
└── 支付宝插件使用.txt
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Windows image file caches
2 | Thumbs.db
3 | ehthumbs.db
4 |
5 | # Folder config file
6 | Desktop.ini
7 |
8 | # Recycle Bin used on file shares
9 | $RECYCLE.BIN/
10 |
11 | # Windows Installer files
12 | *.cab
13 | *.msi
14 | *.msm
15 | *.msp
16 |
17 | # Windows shortcuts
18 | *.lnk
19 |
20 | # =========================
21 | # Operating System Files
22 | # =========================
23 |
24 | # OSX
25 | # =========================
26 |
27 | .DS_Store
28 | .AppleDouble
29 | .LSOverride
30 |
31 | # Thumbnails
32 | ._*
33 |
34 | # Files that might appear on external disk
35 | .Spotlight-V100
36 | .Trashes
37 |
38 | # Directories potentially created on remote AFP share
39 | .AppleDB
40 | .AppleDesktop
41 | Network Trash Folder
42 | Temporary Items
43 | .apdisk
44 |
--------------------------------------------------------------------------------
/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
18 |
19 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # cordova-plugin-alipay
2 | 支付宝插件
3 |
4 |
5 | 添加插件:运行命令 cordova plugin add 插件目录路径
6 |
7 |
8 | 配置ios端:
9 |
10 | 1.启动IDE(如Xcode),plugin下 libs的库,并导入到项目工程中。
11 | AlipaySDK.bundle
12 | AlipaySDK.framework
13 | //libcrypto.a
14 | //libssl.a
15 |
16 | 2.将alipayUtil 文件夹放到plugin目录下,并在xcode中添加,记得选中group。即在xcode中显示为黄色文件夹
17 |
18 | 3.点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search”搜索,
19 | 对“Header Search Paths”增加头文件路径:$(SRCROOT)/项目名称,后面选择recursive 。
20 | 如果头文件信息已增加,可不必再增加。 (如果不添加,会报头文件找不到错误)
21 |
22 | 4.点击项目名称,点击“Build Phases”选项卡,在“Link Binary with Librarles”选项中,新增“AlipaySDK.framework”,“SystemConfiguration.framework”, security.framework 系统库文件。
23 | 如果项目中已有这几个库文件,可不必再增加。(如果不添加,会报link arm64 等错误)
24 |
25 | 5.配置url Scheme(点击项目名称,点击“Info”选项卡,在“URL Types”选项中,点击“+”,在“URL Schemes”中输入“XXXXXX”。“XXXXXX”来自于文件Keys.h) (用于支付结束后的回调),需于代码中的Keys.h 中 urlSceheme一样
26 |
27 | 6.appdelegate中添加 openURL方法里面
28 | if ([url.host isEqualToString:@"safepay"]) {
29 |
30 | [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
31 | NSLog(@"result = %@",resultDic);
32 | }];
33 | }
34 |
35 | 7.修改程序中
36 | PARTNER(合作身份者id)、
37 | SELLER(收款支付宝账号)、
38 | RSA_PRIVATE(商户私钥)**如何生成商户私钥请自行查看支付宝官方文档。**
39 |
40 | 配置Android端:
41 |
42 | 添加插件 cordova plugin add 插件目录路径
43 | 修改Keys 中的PARTNER SELLER RSA_PRIVATE
44 |
45 |
46 | 最后:
47 | 调用方法请参看插件目录下www/index.js 中的testAlipay方法
48 |
49 |
50 | 如果想删除插件,Android端的只需要运行cordova命令就可以了,ios端的除了运行cordova命令,还需要按照安装时的步奏,手动删除库、文件以及代码
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | AlipayPlugin
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
34 |
35 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/src/android/Keys.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2010 The MobileSecurePay Project
3 | * All right reserved.
4 | * author: shiqun.shi@alipay.com
5 | *
6 | * 提示:如何获取安全校验码和合作身份者id
7 | * 1.用您的签约支付宝账号登录支付宝网站(www.alipay.com)
8 | * 2.点击“商家服务”(https://b.alipay.com/order/myorder.htm)
9 | * 3.点击“查询合作者身份(pid)”、“查询安全校验码(key)”
10 | */
11 |
12 | package com.vapps.alipay;
13 |
14 | //
15 | // 请参考 Android平台安全支付服务(msp)应用开发接口(4.2 RSA算法签名)部分,并使用压缩包中的openssl RSA密钥生成工具,生成一套RSA公私钥。
16 | // 这里签名时,只需要使用生成的RSA私钥。
17 | // Note: 为安全起见,使用RSA私钥进行签名的操作过程,应该尽量放到商家服务器端去进行。
18 | public final class Keys {
19 |
20 | //合作身份者id,以2088开头的16位纯数字
21 | public static final String PARTNER = "";
22 |
23 | //收款支付宝账号
24 | public static final String SELLER = "";
25 |
26 | //商户私钥,自助生成 pkcs8格式
27 | public static final String RSA_PRIVATE = "";
28 |
29 | //支付宝默认公钥 ,请勿修改
30 | public static final String PUBLIC = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB";
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/android/PayResult.java:
--------------------------------------------------------------------------------
1 | package com.vapps.alipay;
2 |
3 | import android.text.TextUtils;
4 |
5 | public class PayResult {
6 | private String resultStatus;
7 | private String result;
8 | private String memo;
9 |
10 | public PayResult(String rawResult) {
11 |
12 | if (TextUtils.isEmpty(rawResult))
13 | return;
14 |
15 | String[] resultParams = rawResult.split(";");
16 | for (String resultParam : resultParams) {
17 | if (resultParam.startsWith("resultStatus")) {
18 | resultStatus = gatValue(resultParam, "resultStatus");
19 | }
20 | if (resultParam.startsWith("result")) {
21 | result = gatValue(resultParam, "result");
22 | }
23 | if (resultParam.startsWith("memo")) {
24 | memo = gatValue(resultParam, "memo");
25 | }
26 | }
27 | }
28 |
29 | @Override
30 | public String toString() {
31 | return "resultStatus={" + resultStatus + "};memo={" + memo
32 | + "};result={" + result + "}";
33 | }
34 |
35 | private String gatValue(String content, String key) {
36 | String prefix = key + "={";
37 | return content.substring(content.indexOf(prefix) + prefix.length(),
38 | content.lastIndexOf("}"));
39 | }
40 |
41 | /**
42 | * @return the resultStatus
43 | */
44 | public String getResultStatus() {
45 | return resultStatus;
46 | }
47 |
48 | /**
49 | * @return the memo
50 | */
51 | public String getMemo() {
52 | return memo;
53 | }
54 |
55 | /**
56 | * @return the result
57 | */
58 | public String getResult() {
59 | return result;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/android/SignUtils.java:
--------------------------------------------------------------------------------
1 | package com.vapps.alipay;
2 |
3 | import java.security.KeyFactory;
4 | import java.security.PrivateKey;
5 | import java.security.spec.PKCS8EncodedKeySpec;
6 |
7 | public class SignUtils {
8 |
9 | private static final String ALGORITHM = "RSA";
10 |
11 | private static final String SIGN_ALGORITHMS = "SHA1WithRSA";
12 |
13 | private static final String DEFAULT_CHARSET = "UTF-8";
14 |
15 | public static String sign(String content, String privateKey) {
16 | try {
17 | PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(
18 | Base64.decode(privateKey));
19 | KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);
20 | PrivateKey priKey = keyf.generatePrivate(priPKCS8);
21 |
22 | java.security.Signature signature = java.security.Signature
23 | .getInstance(SIGN_ALGORITHMS);
24 |
25 | signature.initSign(priKey);
26 | signature.update(content.getBytes(DEFAULT_CHARSET));
27 |
28 | byte[] signed = signature.sign();
29 |
30 | return Base64.encode(signed);
31 | } catch (Exception e) {
32 | e.printStackTrace();
33 | }
34 |
35 | return null;
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/src/android/libs/alipaysdk.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/android/libs/alipaysdk.jar
--------------------------------------------------------------------------------
/src/android/libs/alipaysecsdk.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/android/libs/alipaysecsdk.jar
--------------------------------------------------------------------------------
/src/android/libs/alipayutdid.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/android/libs/alipayutdid.jar
--------------------------------------------------------------------------------
/src/ios/AlipayPlugin.h:
--------------------------------------------------------------------------------
1 | //
2 | // AlipayPlugin.h
3 | // TestAlipayDemo
4 | //
5 | // Created by chen on 15/5/13.
6 | //
7 | //
8 |
9 | #ifndef TestAlipayDemo_AlipayPlugin_h
10 | #define TestAlipayDemo_AlipayPlugin_h
11 | //
12 | //测试商品信息封装在Product中,外部商户可以根据自己商品实际情况定义
13 | //
14 |
15 |
16 | @interface AlipayPlugin : CDVPlugin {
17 | // Member variables go here.
18 | }
19 |
20 | - (void)pay:(CDVInvokedUrlCommand*)command;
21 | @end
22 |
23 | #endif
24 |
--------------------------------------------------------------------------------
/src/ios/AlipayPlugin.m:
--------------------------------------------------------------------------------
1 | /********* AlipayPlugin.m Cordova Plugin Implementation *******/
2 |
3 | #import
4 | #import "AlipayPlugin.h"
5 | #import
6 | #import "Order.h"
7 | #import "DataSigner.h"
8 | #import "Keys.h"
9 |
10 |
11 | @implementation AlipayPlugin
12 |
13 | - (void)pay:(CDVInvokedUrlCommand*)command
14 | {
15 |
16 |
17 | //应用注册scheme,在AlixPayDemo-Info.plist定义URL types
18 | NSString *appScheme = UrlScheme_Key;
19 |
20 |
21 |
22 | NSString *marketid = [command.arguments objectAtIndex:0];
23 | NSString *subject = [command.arguments objectAtIndex:1];
24 | NSString *body = [command.arguments objectAtIndex:2];
25 | NSString *price = [command.arguments objectAtIndex:3];
26 |
27 | NSString* orderInfo = [self getOrderInfo:price:subject:body:marketid];
28 |
29 | NSString* signedStr = [self doRsa:orderInfo];
30 |
31 | //将签名成功字符串格式化为订单字符串,请严格按照该格式
32 | NSString *orderString = nil;
33 |
34 | if (signedStr != nil) {
35 | orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
36 | orderInfo, signedStr, @"RSA"];
37 |
38 | [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
39 | NSLog(@"reslut = %@",resultDic);
40 | CDVPluginResult* pluginResult = nil;
41 | pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:resultDic];
42 | [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
43 | }];
44 |
45 | }
46 |
47 |
48 | }
49 |
50 |
51 |
52 |
53 | -(NSString*)getOrderInfo:(NSString *)price:(NSString *)subject:(NSString *)body:(NSString *)marketid
54 | {
55 |
56 |
57 | /*=======================需要填写商户app申请的===================================*/
58 | /*
59 | *商户的唯一的parnter和seller。
60 | *签约后,支付宝会为每个商户分配一个唯一的 parnter 和 seller。
61 | */
62 | NSString *partner = PartnerID;
63 | NSString *seller = SellerID;
64 |
65 | /*============================================================================*/
66 |
67 | /*
68 | *生成订单信息及签名
69 | */
70 | Order *order = [[Order alloc] init];
71 | order.partner = partner;
72 | order.seller = seller;
73 | order.tradeNO =marketid; //订单ID(由商家自行制定)
74 |
75 | order.productName = subject; //商品标题
76 | order.productDescription = body; //商品描述
77 |
78 |
79 | float pri=[price floatValue];
80 | order.amount = [NSString stringWithFormat:@"%.2f",pri]; //商品价格
81 |
82 | order.notifyURL = @"http://www.xxx.com"; //回调URL
83 |
84 | order.service = @"mobile.securitypay.pay";
85 | order.paymentType = @"1";
86 | order.inputCharset = @"utf-8";
87 | order.itBPay = @"30m";
88 | order.showUrl = @"m.alipay.com";
89 |
90 | //将商品信息拼接成字符串
91 | NSString *orderSpec = [order description];
92 | NSLog(@"orderSpec = %@",orderSpec);
93 |
94 | return orderSpec;
95 | }
96 |
97 | //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
98 | -(NSString*)doRsa:(NSString*)orderInfo
99 | {
100 | NSString *privateKey = PartnerPrivKey;
101 | id signer;
102 | signer = CreateRSADataSigner(privateKey);
103 | NSLog(@"签名的之后的字符串是:%@",signer);
104 | NSString *signedString = [signer signString:orderInfo];
105 | return signedString;
106 | }
107 |
108 |
109 |
110 | @end
111 |
--------------------------------------------------------------------------------
/src/ios/Keys.h:
--------------------------------------------------------------------------------
1 | //
2 | // Keys.h
3 | // TestAlipayDemo
4 | //
5 | // Created by chen on 15/5/13.
6 | //
7 | //
8 | // 提示:如何获取安全校验码和合作身份者id
9 | // 1.用您的签约支付宝账号登录支付宝网站(www.alipay.com)
10 | // 2.点击“商家服务”(https://b.alipay.com/order/myorder.htm)
11 | // 3.点击“查询合作者身份(pid)”、“查询安全校验码(key)”
12 | //
13 |
14 | #ifndef Alipay_Keys_h
15 | #define Alipay_Keys_h
16 |
17 | //合作身份者id,以2088开头的16位纯数字
18 | #define PartnerID @""
19 | //收款支付宝账号
20 | #define SellerID @""
21 |
22 |
23 | //应用注册scheme,在AlixPayDemo-Info.plist定义URL types
24 | #define UrlScheme_Key @""
25 |
26 | //商户私钥,自助生成
27 | #define PartnerPrivKey @""
28 |
29 |
30 |
31 | //支付宝公钥 无需修改
32 | #define AlipayPubKey @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB"
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Order.h:
--------------------------------------------------------------------------------
1 | //
2 | // Order.h
3 | // AlixPayDemo
4 | //
5 | // Created by 方彬 on 11/2/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @interface Order : NSObject
12 |
13 | @property(nonatomic, copy) NSString * partner;
14 | @property(nonatomic, copy) NSString * seller;
15 | @property(nonatomic, copy) NSString * tradeNO;
16 | @property(nonatomic, copy) NSString * productName;
17 | @property(nonatomic, copy) NSString * productDescription;
18 | @property(nonatomic, copy) NSString * amount;
19 | @property(nonatomic, copy) NSString * notifyURL;
20 |
21 | @property(nonatomic, copy) NSString * service;
22 | @property(nonatomic, copy) NSString * paymentType;
23 | @property(nonatomic, copy) NSString * inputCharset;
24 | @property(nonatomic, copy) NSString * itBPay;
25 | @property(nonatomic, copy) NSString * showUrl;
26 |
27 |
28 | @property(nonatomic, copy) NSString * rsaDate;//可选
29 | @property(nonatomic, copy) NSString * appID;//可选
30 |
31 | @property(nonatomic, readonly) NSMutableDictionary * extraParams;
32 |
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Order.m:
--------------------------------------------------------------------------------
1 | //
2 | // Order.m
3 | // AlixPayDemo
4 | //
5 | // Created by 方彬 on 11/2/13.
6 | //
7 | //
8 |
9 | #import "Order.h"
10 |
11 | @implementation Order
12 |
13 | - (NSString *)description {
14 | NSMutableString * discription = [NSMutableString string];
15 | if (self.partner) {
16 | [discription appendFormat:@"partner=\"%@\"", self.partner];
17 | }
18 |
19 | if (self.seller) {
20 | [discription appendFormat:@"&seller_id=\"%@\"", self.seller];
21 | }
22 | if (self.tradeNO) {
23 | [discription appendFormat:@"&out_trade_no=\"%@\"", self.tradeNO];
24 | }
25 | if (self.productName) {
26 | [discription appendFormat:@"&subject=\"%@\"", self.productName];
27 | }
28 |
29 | if (self.productDescription) {
30 | [discription appendFormat:@"&body=\"%@\"", self.productDescription];
31 | }
32 | if (self.amount) {
33 | [discription appendFormat:@"&total_fee=\"%@\"", self.amount];
34 | }
35 | if (self.notifyURL) {
36 | [discription appendFormat:@"¬ify_url=\"%@\"", self.notifyURL];
37 | }
38 |
39 | if (self.service) {
40 | [discription appendFormat:@"&service=\"%@\"",self.service];//mobile.securitypay.pay
41 | }
42 | if (self.paymentType) {
43 | [discription appendFormat:@"&payment_type=\"%@\"",self.paymentType];//1
44 | }
45 |
46 | if (self.inputCharset) {
47 | [discription appendFormat:@"&_input_charset=\"%@\"",self.inputCharset];//utf-8
48 | }
49 | if (self.itBPay) {
50 | [discription appendFormat:@"&it_b_pay=\"%@\"",self.itBPay];//30m
51 | }
52 | if (self.showUrl) {
53 | [discription appendFormat:@"&show_url=\"%@\"",self.showUrl];//m.alipay.com
54 | }
55 | if (self.rsaDate) {
56 | [discription appendFormat:@"&sign_date=\"%@\"",self.rsaDate];
57 | }
58 | if (self.appID) {
59 | [discription appendFormat:@"&app_id=\"%@\"",self.appID];
60 | }
61 | for (NSString * key in [self.extraParams allKeys]) {
62 | [discription appendFormat:@"&%@=\"%@\"", key, [self.extraParams objectForKey:key]];
63 | }
64 | return discription;
65 | }
66 |
67 |
68 | @end
69 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/DataSigner.h:
--------------------------------------------------------------------------------
1 | //
2 | // DataSigner.h
3 | // AlixPayDemo
4 | //
5 | // Created by Jing Wen on 8/2/11.
6 | // Copyright 2011 alipay.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | typedef enum DataSignAlgorithm {
13 | DataSignAlgorithmRSA,
14 | DataSignAlgorithmMD5,
15 | } DataSignAlgorithm;
16 |
17 | @protocol DataSigner
18 |
19 | - (NSString *)algorithmName;
20 | - (NSString *)signString:(NSString *)string;
21 |
22 | @end
23 |
24 | id CreateRSADataSigner(NSString *privateKey);
25 |
26 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/DataSigner.m:
--------------------------------------------------------------------------------
1 | //
2 | // DataSigner.m
3 | // AlixPayDemo
4 | //
5 | // Created by Jing Wen on 8/2/11.
6 | // Copyright 2011 alipay.com. All rights reserved.
7 | //
8 |
9 | #import "DataSigner.h"
10 | #import "RSADataSigner.h"
11 | #import "MD5DataSigner.h"
12 |
13 | id CreateRSADataSigner(NSString *privateKey) {
14 |
15 | return [[RSADataSigner alloc] initWithPrivateKey:privateKey];
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/DataVerifier.h:
--------------------------------------------------------------------------------
1 | //
2 | // DataVerifier.h
3 | // AlixPayDemo
4 | //
5 | // Created by Jing Wen on 8/2/11.
6 | // Copyright 2011 alipay.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @protocol DataVerifier
13 |
14 | - (NSString *)algorithmName;
15 | - (BOOL)verifyString:(NSString *)string withSign:(NSString *)signString;
16 |
17 | @end
18 |
19 | id CreateRSADataVerifier(NSString *publicKey);
20 |
21 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/DataVerifier.m:
--------------------------------------------------------------------------------
1 | //
2 | // DataVerifier.m
3 | // AlixPayDemo
4 | //
5 | // Created by Jing Wen on 8/2/11.
6 | // Copyright 2011 alipay.com. All rights reserved.
7 | //
8 |
9 | #import "DataVerifier.h"
10 |
11 |
12 | #import "RSADataVerifier.h"
13 |
14 | id CreateRSADataVerifier(NSString *publicKey) {
15 |
16 | return [[RSADataVerifier alloc] initWithPublicKey:publicKey];
17 |
18 | }
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/MD5DataSigner.h:
--------------------------------------------------------------------------------
1 | //
2 | // MD5DataSigner.h
3 | // SafepayService
4 | //
5 | // Created by wenbi on 11-4-11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "DataSigner.h"
11 |
12 | @interface MD5DataSigner : NSObject {
13 | }
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/MD5DataSigner.m:
--------------------------------------------------------------------------------
1 | //
2 | // MD5DataSigner.m
3 | // SafepayService
4 | //
5 | // Created by wenbi on 11-4-11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "MD5DataSigner.h"
10 |
11 |
12 | @implementation MD5DataSigner
13 |
14 | - (NSString *)algorithmName {
15 | return @"MD5";
16 | }
17 |
18 | - (NSString *)signString:(NSString *)string {
19 | return @"";
20 | }
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/NSDataEx.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDataEx.h
3 | // iX3.0
4 | //
5 | // Created by Feng Huajun on 09-4-16.
6 | // Copyright 2009 Infothinker. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface NSData (NSDataBase64Additions)
13 | + (NSData *) dataWithBase64EncodedString:(NSString *) string;
14 | - (id) initWithBase64EncodedString:(NSString *) string;
15 |
16 | - (NSString *) base64Encoding;
17 | - (NSString *) base64EncodingWithLineLength:(unsigned int) lineLength;
18 | //- (NSString*) urlEncodedString;
19 |
20 | @end
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/NSDataEx.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSDataEx.m
3 | // iX3.0
4 | //
5 | // Created by Feng Huajun on 09-4-16.
6 | // Copyright 2009 Infothinker. All rights reserved.
7 | //
8 |
9 | #import "NSDataEx.h"
10 |
11 | static char encodingTable[64] = {
12 | 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
13 | 'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
14 | 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
15 | 'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/' };
16 |
17 | @implementation NSData (NSDataBase64Additions)
18 |
19 | + (NSData *) dataWithBase64EncodedString:(NSString *) string {
20 | NSData *result = [[NSData alloc] initWithBase64EncodedString:string];
21 | return result;
22 | }
23 |
24 | - (id) initWithBase64EncodedString:(NSString *) string {
25 | NSMutableData *mutableData = nil;
26 |
27 | if( string ) {
28 | unsigned long ixtext = 0;
29 | unsigned long lentext = 0;
30 | unsigned char ch = 0;
31 | unsigned char inbuf[4], outbuf[3];
32 | short i = 0, ixinbuf = 0;
33 | BOOL flignore = NO;
34 | BOOL flendtext = NO;
35 | NSData *base64Data = nil;
36 | const unsigned char *base64Bytes = nil;
37 |
38 | // Convert the string to ASCII data.
39 | base64Data = [string dataUsingEncoding:NSASCIIStringEncoding];
40 | base64Bytes = [base64Data bytes];
41 | mutableData = [NSMutableData dataWithCapacity:[base64Data length]];
42 | lentext = [base64Data length];
43 |
44 | while( YES ) {
45 | if( ixtext >= lentext ) break;
46 | ch = base64Bytes[ixtext++];
47 | flignore = NO;
48 |
49 | if( ( ch >= 'A' ) && ( ch <= 'Z' ) ) ch = ch - 'A';
50 | else if( ( ch >= 'a' ) && ( ch <= 'z' ) ) ch = ch - 'a' + 26;
51 | else if( ( ch >= '0' ) && ( ch <= '9' ) ) ch = ch - '0' + 52;
52 | else if( ch == '+' ) ch = 62;
53 | else if( ch == '=' ) flendtext = YES;
54 | else if( ch == '/' ) ch = 63;
55 | else flignore = YES;
56 |
57 | if( ! flignore ) {
58 | short ctcharsinbuf = 3;
59 | BOOL flbreak = NO;
60 |
61 | if( flendtext ) {
62 | if( ! ixinbuf ) break;
63 | if( ( ixinbuf == 1 ) || ( ixinbuf == 2 ) ) ctcharsinbuf = 1;
64 | else ctcharsinbuf = 2;
65 | ixinbuf = 3;
66 | flbreak = YES;
67 | }
68 |
69 | inbuf [ixinbuf++] = ch;
70 |
71 | if( ixinbuf == 4 ) {
72 | ixinbuf = 0;
73 | outbuf [0] = ( inbuf[0] << 2 ) | ( ( inbuf[1] & 0x30) >> 4 );
74 | outbuf [1] = ( ( inbuf[1] & 0x0F ) << 4 ) | ( ( inbuf[2] & 0x3C ) >> 2 );
75 | outbuf [2] = ( ( inbuf[2] & 0x03 ) << 6 ) | ( inbuf[3] & 0x3F );
76 |
77 | for( i = 0; i < ctcharsinbuf; i++ )
78 | [mutableData appendBytes:&outbuf[i] length:1];
79 | }
80 |
81 | if( flbreak ) break;
82 | }
83 | }
84 | }
85 |
86 | self = [self initWithData:mutableData];
87 | return self;
88 | }
89 |
90 | #pragma mark -
91 |
92 | - (NSString *) base64Encoding {
93 | return [self base64EncodingWithLineLength:0];
94 | }
95 |
96 | - (NSString *) base64EncodingWithLineLength:(unsigned int) lineLength {
97 | const unsigned char *bytes = [self bytes];
98 | NSMutableString *result = [NSMutableString stringWithCapacity:[self length]];
99 | unsigned long ixtext = 0;
100 | unsigned long lentext = [self length];
101 | long ctremaining = 0;
102 | unsigned char inbuf[3], outbuf[4];
103 | short i = 0;
104 | short charsonline = 0, ctcopy = 0;
105 | unsigned long ix = 0;
106 |
107 | while( YES ) {
108 | ctremaining = lentext - ixtext;
109 | if( ctremaining <= 0 ) break;
110 |
111 | for( i = 0; i < 3; i++ ) {
112 | ix = ixtext + i;
113 | if( ix < lentext ) inbuf[i] = bytes[ix];
114 | else inbuf [i] = 0;
115 | }
116 |
117 | outbuf [0] = (inbuf [0] & 0xFC) >> 2;
118 | outbuf [1] = ((inbuf [0] & 0x03) << 4) | ((inbuf [1] & 0xF0) >> 4);
119 | outbuf [2] = ((inbuf [1] & 0x0F) << 2) | ((inbuf [2] & 0xC0) >> 6);
120 | outbuf [3] = inbuf [2] & 0x3F;
121 | ctcopy = 4;
122 |
123 | switch( ctremaining ) {
124 | case 1:
125 | ctcopy = 2;
126 | break;
127 | case 2:
128 | ctcopy = 3;
129 | break;
130 | }
131 |
132 | for( i = 0; i < ctcopy; i++ )
133 | [result appendFormat:@"%c", encodingTable[outbuf[i]]];
134 |
135 | for( i = ctcopy; i < 4; i++ )
136 | [result appendFormat:@"%c",'='];
137 |
138 | ixtext += 3;
139 | charsonline += 4;
140 |
141 | if( lineLength > 0 ) {
142 | if (charsonline >= lineLength) {
143 | charsonline = 0;
144 | [result appendString:@"\n"];
145 | }
146 | }
147 | }
148 |
149 | return result;
150 | }
151 |
152 |
153 |
154 | //- (NSString*) urlEncodedString
155 | //{
156 | // char *hex = "0123456789ABCDEF";
157 | // unsigned char* data = (unsigned char*)[self bytes];
158 | // int len = [self length];
159 | // //NSLog(@"len = %d", len);
160 | // NSMutableString* s = [NSMutableString string];
161 | // for(int i = 0;i> 4];
173 | // // NSLog(@"ts = %c", ts1);
174 | // NSString* ts = [[NSString alloc] initWithCString:&ts1 length:1];
175 | // [s appendString:ts];
176 | // [ts release];
177 | // char ts2 = hex[c & 15];
178 | // ts = [[NSString alloc] initWithCString:&ts2 length:1];
179 | // [s appendString:ts];
180 | // [ts release];
181 | //
182 | // }
183 | // }
184 | // return s;
185 | //}
186 |
187 | @end
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/RSADataSigner.h:
--------------------------------------------------------------------------------
1 | //
2 | // RSADataSigner.h
3 | // SafepayService
4 | //
5 | // Created by wenbi on 11-4-11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "DataSigner.h"
11 |
12 | @interface RSADataSigner : NSObject {
13 | NSString * _privateKey;
14 | }
15 |
16 | - (id)initWithPrivateKey:(NSString *)privateKey;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/RSADataSigner.m:
--------------------------------------------------------------------------------
1 | //
2 | // RSADataSigner.m
3 | // SafepayService
4 | //
5 | // Created by wenbi on 11-4-11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "RSADataSigner.h"
10 | #import "openssl_wrapper.h"
11 | #import "NSDataEx.h"
12 |
13 | @implementation RSADataSigner
14 |
15 | - (id)initWithPrivateKey:(NSString *)privateKey {
16 | if (self = [super init]) {
17 | _privateKey = [privateKey copy];
18 | }
19 | return self;
20 | }
21 |
22 | - (NSString*)urlEncodedString:(NSString *)string
23 | {
24 | NSString * encodedString = (__bridge_transfer NSString*) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, (__bridge CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8 );
25 |
26 | return encodedString;
27 | }
28 |
29 |
30 | - (NSString *)formatPrivateKey:(NSString *)privateKey {
31 | const char *pstr = [privateKey UTF8String];
32 | int len = [privateKey length];
33 | NSMutableString *result = [NSMutableString string];
34 | [result appendString:@"-----BEGIN PRIVATE KEY-----\n"];
35 | int index = 0;
36 | int count = 0;
37 | while (index < len) {
38 | char ch = pstr[index];
39 | if (ch == '\r' || ch == '\n') {
40 | ++index;
41 | continue;
42 | }
43 | [result appendFormat:@"%c", ch];
44 | if (++count == 79)
45 | {
46 | [result appendString:@"\n"];
47 | count = 0;
48 | }
49 | index++;
50 | }
51 | [result appendString:@"\n-----END PRIVATE KEY-----"];
52 | return result;
53 | }
54 |
55 | - (NSString *)algorithmName {
56 | return @"RSA";
57 | }
58 |
59 | //该签名方法仅供参考,外部商户可用自己方法替换
60 | - (NSString *)signString:(NSString *)string {
61 |
62 | //在Document文件夹下创建私钥文件
63 | NSString * signedString = nil;
64 | NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
65 | NSString *path = [documentPath stringByAppendingPathComponent:@"AlixPay-RSAPrivateKey"];
66 |
67 | //
68 | // 把密钥写入文件
69 | //
70 | NSString *formatKey = [self formatPrivateKey:_privateKey];
71 | [formatKey writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
72 |
73 | const char *message = [string cStringUsingEncoding:NSUTF8StringEncoding];
74 | int messageLength = strlen(message);
75 | unsigned char *sig = (unsigned char *)malloc(256);
76 | unsigned int sig_len;
77 | int ret = rsa_sign_with_private_key_pem((char *)message, messageLength, sig, &sig_len, (char *)[path UTF8String]);
78 | //签名成功,需要给签名字符串base64编码和UrlEncode,该两个方法也可以根据情况替换为自己函数
79 | if (ret == 1) {
80 | NSString * base64String = base64StringFromData([NSData dataWithBytes:sig length:sig_len]);
81 | //NSData * UTF8Data = [base64String dataUsingEncoding:NSUTF8StringEncoding];
82 | signedString = [self urlEncodedString:base64String];
83 | }
84 |
85 | free(sig);
86 | return signedString;
87 | }
88 |
89 | @end
90 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/RSADataVerifier.h:
--------------------------------------------------------------------------------
1 | //
2 | // RSADataVerifier.h
3 | // SafepayService
4 | //
5 | // Created by wenbi on 11-4-11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "DataVerifier.h"
11 |
12 | @interface RSADataVerifier : NSObject {
13 | NSString *_publicKey;
14 | }
15 |
16 | - (id)initWithPublicKey:(NSString *)publicKey;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/RSADataVerifier.m:
--------------------------------------------------------------------------------
1 | //
2 | // AlixPayDataVerifier.m
3 | // SafepayService
4 | //
5 | // Created by wenbi on 11-4-11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "RSADataVerifier.h"
10 | #import "openssl_wrapper.h"
11 | #import "NSDataEx.h"
12 | #import "base64.h"
13 |
14 | @implementation RSADataVerifier
15 |
16 | - (id)initWithPublicKey:(NSString *)publicKey {
17 | if (self = [super init]) {
18 | _publicKey = [publicKey copy];
19 | }
20 | return self;
21 | }
22 |
23 |
24 | - (NSString *)formatPublicKey:(NSString *)publicKey {
25 |
26 | NSMutableString *result = [NSMutableString string];
27 |
28 | [result appendString:@"-----BEGIN PUBLIC KEY-----\n"];
29 |
30 | int count = 0;
31 |
32 | for (int i = 0; i < [publicKey length]; ++i) {
33 |
34 | unichar c = [publicKey characterAtIndex:i];
35 | if (c == '\n' || c == '\r') {
36 | continue;
37 | }
38 | [result appendFormat:@"%c", c];
39 | if (++count == 76) {
40 | [result appendString:@"\n"];
41 | count = 0;
42 | }
43 |
44 | }
45 |
46 | [result appendString:@"\n-----END PUBLIC KEY-----\n"];
47 |
48 | return result;
49 |
50 | }
51 |
52 | - (NSString *)algorithmName {
53 | return @"RSA";
54 | }
55 |
56 | - (BOOL)verifyString:(NSString *)string withSign:(NSString *)signString {
57 |
58 | // const char *message = [string cStringUsingEncoding:NSUTF8StringEncoding];
59 | // int messageLength = strlen(message);
60 | //
61 | // unsigned char *signature = (unsigned char *)[signString UTF8String];
62 | // unsigned int signatureLength = (unsigned int)strlen((char *)signature);
63 | // char *encodedPath = (char *)[_pathForPEMFile cStringUsingEncoding:NSUTF8StringEncoding];
64 |
65 | NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
66 | NSString *path = [documentPath stringByAppendingPathComponent:@"AlixPay-RSAPublicKey"];
67 |
68 | //
69 | // 把密钥写入文件
70 | //
71 | NSString *formatKey = [self formatPublicKey:_publicKey];
72 | [formatKey writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
73 |
74 | BOOL ret;
75 | rsaVerifyString(string, signString, path, &ret);
76 | return ret;
77 |
78 | }
79 |
80 | @end
81 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/base64.h:
--------------------------------------------------------------------------------
1 | /**
2 | * \file base64.h
3 | */
4 | #ifndef XYSSL_BASE64_H
5 | #define XYSSL_BASE64_H
6 |
7 | #define XYSSL_ERR_BASE64_INVALID_CHARACTER -0x0012
8 | #define XYSSL_ERR_BASE64_BUFFER_TOO_SMALL -0x0010
9 |
10 | #ifdef __cplusplus
11 | extern "C" {
12 | #endif
13 |
14 | /**
15 | * \brief Encode a buffer into base64 format
16 | *
17 | * \param dst destination buffer
18 | * \param dlen size of the buffer
19 | * \param src source buffer
20 | * \param slen amount of data to be encoded
21 | *
22 | * \return 0 if successful, or XYSSL_ERR_BASE64_BUFFER_TOO_SMALL.
23 | * *dlen is always updated to reflect the amount
24 | * of data that has (or would have) been written.
25 | *
26 | * \note Call this function with *dlen = 0 to obtain the
27 | * required buffer size in *dlen
28 | */
29 | int base64_encode( unsigned char *dst, int *dlen,
30 | unsigned char *src, int slen );
31 |
32 | /**
33 | * \brief Decode a base64-formatted buffer
34 | *
35 | * \param dst destination buffer
36 | * \param dlen size of the buffer
37 | * \param src source buffer
38 | * \param slen amount of data to be decoded
39 | *
40 | * \return 0 if successful, XYSSL_ERR_BASE64_BUFFER_TOO_SMALL, or
41 | * XYSSL_ERR_BASE64_INVALID_DATA if the input data is not
42 | * correct. *dlen is always updated to reflect the amount
43 | * of data that has (or would have) been written.
44 | *
45 | * \note Call this function with *dlen = 0 to obtain the
46 | * required buffer size in *dlen
47 | */
48 | int base64_decode( unsigned char *dst, int *dlen,
49 | unsigned char *src, int slen );
50 |
51 | /**
52 | * \brief Checkup routine
53 | *
54 | * \return 0 if successful, or 1 if the test failed
55 | */
56 | int base64_self_test( int verbose );
57 |
58 | #ifdef __cplusplus
59 | }
60 | #endif
61 |
62 |
63 | @interface Base64 : NSObject
64 |
65 | + (NSData *)decodeString:(NSString *)string;
66 |
67 | @end
68 |
69 |
70 | #endif /* base64.h */
71 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/base64.m:
--------------------------------------------------------------------------------
1 | /*
2 | * RFC 1521 base64 encoding/decoding
3 | *
4 | * Copyright (C) 2006-2007 Christophe Devine
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License along
17 | * with this program; if not, write to the Free Software Foundation, Inc.,
18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 | */
20 | //#include "stdafx.h"
21 | #include "config.h"
22 |
23 | #if defined(XYSSL_BASE64_C)
24 |
25 | #include "base64.h"
26 |
27 | static const unsigned char base64_enc_map[64] =
28 | {
29 | 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
30 | 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
31 | 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
32 | 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
33 | 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
34 | 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7',
35 | '8', '9', '+', '/'
36 | };
37 |
38 | static const unsigned char base64_dec_map[128] =
39 | {
40 | 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
41 | 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
42 | 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
43 | 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
44 | 127, 127, 127, 62, 127, 127, 127, 63, 52, 53,
45 | 54, 55, 56, 57, 58, 59, 60, 61, 127, 127,
46 | 127, 64, 127, 127, 127, 0, 1, 2, 3, 4,
47 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
48 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
49 | 25, 127, 127, 127, 127, 127, 127, 26, 27, 28,
50 | 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
51 | 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
52 | 49, 50, 51, 127, 127, 127, 127, 127
53 | };
54 |
55 | /*
56 | * Encode a buffer into base64 format
57 | */
58 | int base64_encode( unsigned char *dst, int *dlen,
59 | unsigned char *src, int slen )
60 | {
61 | int i, n;
62 | int C1, C2, C3;
63 | unsigned char *p;
64 |
65 | if( slen == 0 )
66 | return( 0 );
67 |
68 | n = (slen << 3) / 6;
69 |
70 | switch( (slen << 3) - (n * 6) )
71 | {
72 | case 2: n += 3; break;
73 | case 4: n += 2; break;
74 | default: break;
75 | }
76 |
77 | if( *dlen < n + 1 )
78 | {
79 | *dlen = n + 1;
80 | return( XYSSL_ERR_BASE64_BUFFER_TOO_SMALL );
81 | }
82 |
83 | n = (slen / 3) * 3;
84 |
85 | for( i = 0, p = dst; i < n; i += 3 )
86 | {
87 | C1 = *src++;
88 | C2 = *src++;
89 | C3 = *src++;
90 |
91 | *p++ = base64_enc_map[(C1 >> 2) & 0x3F];
92 | *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F];
93 | *p++ = base64_enc_map[(((C2 & 15) << 2) + (C3 >> 6)) & 0x3F];
94 | *p++ = base64_enc_map[C3 & 0x3F];
95 | }
96 |
97 | if( i < slen )
98 | {
99 | C1 = *src++;
100 | C2 = ((i + 1) < slen) ? *src++ : 0;
101 |
102 | *p++ = base64_enc_map[(C1 >> 2) & 0x3F];
103 | *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F];
104 |
105 | if( (i + 1) < slen )
106 | *p++ = base64_enc_map[((C2 & 15) << 2) & 0x3F];
107 | else *p++ = '=';
108 |
109 | *p++ = '=';
110 | }
111 |
112 | *dlen = p - dst;
113 | *p = 0;
114 |
115 | return( 0 );
116 | }
117 |
118 | /*
119 | * Decode a base64-formatted buffer
120 | */
121 | int base64_decode( unsigned char *dst, int *dlen,
122 | unsigned char *src, int slen )
123 | {
124 | int i, j, n;
125 | unsigned long x;
126 | unsigned char *p;
127 |
128 | for( i = j = n = 0; i < slen; i++ )
129 | {
130 | if( ( slen - i ) >= 2 &&
131 | src[i] == '\r' && src[i + 1] == '\n' )
132 | continue;
133 |
134 | if( src[i] == '\n' )
135 | continue;
136 |
137 | if( src[i] == '=' && ++j > 2 )
138 | return( XYSSL_ERR_BASE64_INVALID_CHARACTER );
139 |
140 | if( src[i] > 127 || base64_dec_map[src[i]] == 127 )
141 | return( XYSSL_ERR_BASE64_INVALID_CHARACTER );
142 |
143 | if( base64_dec_map[src[i]] < 64 && j != 0 )
144 | return( XYSSL_ERR_BASE64_INVALID_CHARACTER );
145 |
146 | n++;
147 | }
148 |
149 | if( n == 0 )
150 | return( 0 );
151 |
152 | n = ((n * 6) + 7) >> 3;
153 |
154 | if( *dlen < n )
155 | {
156 | *dlen = n;
157 | return( XYSSL_ERR_BASE64_BUFFER_TOO_SMALL );
158 | }
159 |
160 | for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ )
161 | {
162 | if( *src == '\r' || *src == '\n' )
163 | continue;
164 |
165 | j -= ( base64_dec_map[*src] == 64 );
166 | x = (x << 6) | ( base64_dec_map[*src] & 0x3F );
167 |
168 | if( ++n == 4 )
169 | {
170 | n = 0;
171 | if( j > 0 ) *p++ = (unsigned char)( x >> 16 );
172 | if( j > 1 ) *p++ = (unsigned char)( x >> 8 );
173 | if( j > 2 ) *p++ = (unsigned char)( x );
174 | }
175 | }
176 |
177 | *dlen = p - dst;
178 |
179 | return( 0 );
180 | }
181 |
182 | @implementation Base64
183 |
184 | + (NSData *)decodeString:(NSString *)string {
185 |
186 | char *dst = NULL;
187 | int dlen = 0;
188 |
189 | char *src = (char *)[string UTF8String];
190 | int slen = (int)strlen((char *)src);
191 |
192 | int ret = base64_decode((unsigned char *)dst, &dlen, (unsigned char *)src, slen);
193 | if (ret == XYSSL_ERR_BASE64_BUFFER_TOO_SMALL) {
194 | dst = (char *)malloc(dlen);
195 | ret = base64_decode((unsigned char *)dst, &dlen, (unsigned char *)src, slen);
196 | }
197 |
198 | NSData *data = [NSData dataWithBytes:dst length:dlen];
199 | if (dst != NULL) {
200 | free(dst);
201 | }
202 | return data;
203 | }
204 |
205 | @end
206 |
207 | #endif
208 |
209 |
210 |
211 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/config.h:
--------------------------------------------------------------------------------
1 | /**
2 | * \file config.h
3 | *
4 | * This set of compile-time options may be used to enable
5 | * or disable features selectively, and reduce the global
6 | * memory footprint.
7 | */
8 | #ifndef XYSSL_CONFIG_H
9 | #define XYSSL_CONFIG_H
10 |
11 | #ifndef _CRT_SECURE_NO_DEPRECATE
12 | #define _CRT_SECURE_NO_DEPRECATE 1
13 | #endif
14 |
15 | /*
16 | * Uncomment if native integers are 8-bit wide.
17 | *
18 | #define XYSSL_HAVE_INT8
19 | */
20 |
21 | /*
22 | * Uncomment if native integers are 16-bit wide.
23 | *
24 | #define XYSSL_HAVE_INT16
25 | */
26 |
27 | /*
28 | * Uncomment if the compiler supports long long.
29 | *
30 | #define XYSSL_HAVE_LONGLONG
31 | */
32 |
33 | /*
34 | * Uncomment to enable the use of assembly code.
35 | */
36 | //#define XYSSL_HAVE_ASM
37 |
38 | /*
39 | * Uncomment if the CPU supports SSE2 (IA-32 specific).
40 | *
41 | #define XYSSL_HAVE_SSE2
42 | */
43 |
44 | /*
45 | * Enable all SSL/TLS debugging messages.
46 | #define XYSSL_DEBUG_MSG
47 | */
48 |
49 | /*
50 | * Enable the checkup functions (*_self_test).
51 | */
52 | #define XYSSL_SELF_TEST
53 |
54 |
55 | /*
56 | * Enable the prime-number generation code.
57 | */
58 | #define XYSSL_GENPRIME
59 |
60 | /*
61 | * Uncomment this macro to store the AES tables in ROM.
62 | *
63 | #define XYSSL_AES_ROM_TABLES
64 | */
65 |
66 | /*
67 | * Module: library/aes.c
68 | * Caller: library/ssl_tls.c
69 | *
70 | * This module enables the following ciphersuites:
71 | * SSL_RSA_AES_128_SHA
72 | * SSL_RSA_AES_256_SHA
73 | * SSL_EDH_RSA_AES_256_SHA
74 | */
75 | #define XYSSL_AES_C
76 |
77 | /*
78 | * Module: library/arc4.c
79 | * Caller: library/ssl_tls.c
80 | *
81 | * This module enables the following ciphersuites:
82 | * SSL_RSA_RC4_128_MD5
83 | * SSL_RSA_RC4_128_SHA
84 | */
85 | #define XYSSL_ARC4_C
86 |
87 | /*
88 | * Module: library/base64.c
89 | * Caller: library/x509parse.c
90 | *
91 | * This module is required for X.509 support.
92 | */
93 | #define XYSSL_BASE64_C
94 |
95 | /*
96 | * Module: library/bignum.c
97 | * Caller: library/dhm.c
98 | * library/rsa.c
99 | * library/ssl_tls.c
100 | * library/x509parse.c
101 | *
102 | * This module is required for RSA and DHM support.
103 | */
104 | #define XYSSL_BIGNUM_C
105 |
106 | /*
107 | * Module: library/certs.c
108 | * Caller:
109 | *
110 | * This module is used for testing (ssl_client/server).
111 | */
112 | #define XYSSL_CERTS_C
113 |
114 | /*
115 | * Module: library/debug.c
116 | * Caller: library/ssl_cli.c
117 | * library/ssl_srv.c
118 | * library/ssl_tls.c
119 | *
120 | * This module provides debugging functions.
121 | #define XYSSL_DEBUG_C
122 | */
123 |
124 | /*
125 | * Module: library/des.c
126 | * Caller: library/ssl_tls.c
127 | *
128 | * This module enables the following ciphersuites:
129 | * SSL_RSA_DES_168_SHA
130 | * SSL_EDH_RSA_DES_168_SHA
131 | */
132 | #define XYSSL_DES_C
133 |
134 | /*
135 | * Module: library/dhm.c
136 | * Caller: library/ssl_cli.c
137 | * library/ssl_srv.c
138 | *
139 | * This module enables the following ciphersuites:
140 | * SSL_EDH_RSA_DES_168_SHA
141 | * SSL_EDH_RSA_AES_256_SHA
142 | */
143 | #define XYSSL_DHM_C
144 |
145 | /*
146 | * Module: library/havege.c
147 | * Caller:
148 | *
149 | * This module enables the HAVEGE random number generator.
150 | */
151 | #define XYSSL_HAVEGE_C
152 |
153 | /*
154 | * Module: library/md2.c
155 | * Caller: library/x509parse.c
156 | *
157 | * Uncomment to enable support for (rare) MD2-signed X.509 certs.
158 | *
159 | #define XYSSL_MD2_C
160 | */
161 |
162 | /*
163 | * Module: library/md4.c
164 | * Caller: library/x509parse.c
165 | *
166 | * Uncomment to enable support for (rare) MD4-signed X.509 certs.
167 | *
168 | #define XYSSL_MD4_C
169 | */
170 |
171 | /*
172 | * Module: library/md5.c
173 | * Caller: library/ssl_tls.c
174 | * library/x509parse.c
175 | *
176 | * This module is required for SSL/TLS and X.509.
177 | */
178 | #define XYSSL_MD5_C
179 |
180 | /*
181 | * Module: library/net.c
182 | * Caller:
183 | *
184 | * This module provides TCP/IP networking routines.
185 | */
186 | #define XYSSL_NET_C
187 |
188 | /*
189 | * Module: library/padlock.c
190 | * Caller: library/aes.c
191 | *
192 | * This modules adds support for the VIA PadLock on x86.
193 | */
194 | #define XYSSL_PADLOCK_C
195 |
196 | /*
197 | * Module: library/rsa.c
198 | * Caller: library/ssl_cli.c
199 | * library/ssl_srv.c
200 | * library/ssl_tls.c
201 | * library/x509.c
202 | *
203 | * This module is required for SSL/TLS and MD5-signed certificates.
204 | */
205 | #define XYSSL_RSA_C
206 |
207 | /*
208 | * Module: library/sha1.c
209 | * Caller: library/ssl_cli.c
210 | * library/ssl_srv.c
211 | * library/ssl_tls.c
212 | * library/x509parse.c
213 | *
214 | * This module is required for SSL/TLS and SHA1-signed certificates.
215 | */
216 | #define XYSSL_SHA1_C
217 |
218 | /*
219 | * Module: library/sha2.c
220 | * Caller:
221 | *
222 | * This module adds support for SHA-224 and SHA-256.
223 | */
224 | #define XYSSL_SHA2_C
225 |
226 | /*
227 | * Module: library/sha4.c
228 | * Caller:
229 | *
230 | * This module adds support for SHA-384 and SHA-512.
231 | */
232 | #define XYSSL_SHA4_C
233 |
234 | /*
235 | * Module: library/ssl_cli.c
236 | * Caller:
237 | *
238 | * This module is required for SSL/TLS client support.
239 | */
240 | #define XYSSL_SSL_CLI_C
241 |
242 | /*
243 | * Module: library/ssl_srv.c
244 | * Caller:
245 | *
246 | * This module is required for SSL/TLS server support.
247 | */
248 | #define XYSSL_SSL_SRV_C
249 |
250 | /*
251 | * Module: library/ssl_tls.c
252 | * Caller: library/ssl_cli.c
253 | * library/ssl_srv.c
254 | *
255 | * This module is required for SSL/TLS.
256 | */
257 | #define XYSSL_SSL_TLS_C
258 |
259 | /*
260 | * Module: library/timing.c
261 | * Caller: library/havege.c
262 | *
263 | * This module is used by the HAVEGE random number generator.
264 | */
265 | #define XYSSL_TIMING_C
266 |
267 | /*
268 | * Module: library/x509parse.c
269 | * Caller: library/ssl_cli.c
270 | * library/ssl_srv.c
271 | * library/ssl_tls.c
272 | *
273 | * This module is required for X.509 certificate parsing.
274 | */
275 | #define XYSSL_X509_PARSE_C
276 |
277 | /*
278 | * Module: library/x509_write.c
279 | * Caller:
280 | *
281 | * This module is required for X.509 certificate writing.
282 | */
283 | #define XYSSL_X509_WRITE_C
284 |
285 | #endif /* config.h */
286 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/openssl_wrapper.h:
--------------------------------------------------------------------------------
1 | //
2 | // openssl_wrapper.h
3 | // ThirdDemoApp
4 | //
5 | // Created by Xu Hanjie on 11-1-20.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | int rsa_sign_with_private_key_pem(char *message, int message_length
10 | , unsigned char *signature, unsigned int *signature_length
11 | , char *private_key_file_path);
12 | int rsa_verify_with_public_key_pem(char *message, int message_length
13 | , unsigned char *signature, unsigned int signature_length
14 | , char *public_key_file_path);
15 |
16 | NSString *base64StringFromData(NSData *signature);
17 | NSData *dataFromBase64String(NSString *base64String);
18 | NSString *rsaSignString(NSString *stringToSign, NSString *privateKeyFilePath, BOOL *signSuccess);
19 | void rsaVerifyString(NSString *stringToVerify, NSString *signature, NSString *publicKeyFilePath, BOOL *verifySuccess);
20 | NSString *formattedPEMString(NSString *originalString);
21 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/Util/openssl_wrapper.m:
--------------------------------------------------------------------------------
1 | //
2 | // openssl_wrapper.m
3 | // ThirdDemoApp
4 | //
5 | // Created by Xu Hanjie on 11-1-20.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "openssl_wrapper.h"
10 |
11 | #import "rsa.h"
12 | #include "pem.h"
13 | #include "md5.h"
14 | #include "bio.h"
15 | #include "sha.h"
16 | #include
17 |
18 |
19 | int rsa_sign_with_private_key_pem(char *message, int message_length
20 | , unsigned char *signature, unsigned int *signature_length
21 | , char *private_key_file_path)
22 | {
23 | unsigned char sha1[20];
24 | SHA1((unsigned char *)message, message_length, sha1);
25 | int success = 0;
26 | BIO *bio_private = NULL;
27 | RSA *rsa_private = NULL;
28 | bio_private = BIO_new(BIO_s_file());
29 | BIO_read_filename(bio_private, private_key_file_path);
30 | rsa_private = PEM_read_bio_RSAPrivateKey(bio_private, NULL, NULL, "");
31 | if (rsa_private != nil) {
32 | if (1 == RSA_check_key(rsa_private))
33 | {
34 | int rsa_sign_valid = RSA_sign(NID_sha1
35 | , sha1, 20
36 | , signature, signature_length
37 | , rsa_private);
38 | if (1 == rsa_sign_valid)
39 | {
40 | success = 1;
41 | }
42 | }
43 | BIO_free_all(bio_private);
44 | }
45 | else {
46 | NSLog(@"rsa_private read error : private key is NULL");
47 | }
48 |
49 | return success;
50 | }
51 |
52 | int rsa_verify_with_public_key_pem(char *message, int message_length
53 | , unsigned char *signature, unsigned int signature_length
54 | , char *public_key_file_path)
55 | {
56 | unsigned char sha1[20];
57 | SHA1((unsigned char *)message, message_length, sha1);
58 | BIO *bio_public = NULL;
59 | RSA *rsa_public = NULL;
60 | bio_public = BIO_new(BIO_s_file());
61 | BIO_read_filename(bio_public, public_key_file_path);
62 | rsa_public = PEM_read_bio_RSA_PUBKEY(bio_public, NULL, NULL, NULL);
63 |
64 | int rsa_verify_valid = RSA_verify(NID_sha1
65 | , sha1, 20
66 | , signature, signature_length
67 | , rsa_public);
68 | BIO_free_all(bio_public);
69 | if (1 == rsa_verify_valid)
70 | {
71 | return 1;
72 | }
73 | return 0;
74 | }
75 |
76 | NSString *base64StringFromData(NSData *signature)
77 | {
78 | int signatureLength = [signature length];
79 | unsigned char *outputBuffer = (unsigned char *)malloc(2 * 4 * (signatureLength / 3 + 1));
80 | int outputLength = EVP_EncodeBlock(outputBuffer, [signature bytes], signatureLength);
81 | outputBuffer[outputLength] = '\0';
82 | NSString *base64String = [NSString stringWithCString:(char *)outputBuffer encoding:NSASCIIStringEncoding];
83 | free(outputBuffer);
84 | return base64String;
85 | }
86 |
87 | NSData *dataFromBase64String(NSString *base64String)
88 | {
89 | int stringLength = [base64String length];
90 | const unsigned char *strBuffer = (const unsigned char *)[base64String UTF8String];
91 | unsigned char *outputBuffer = (unsigned char *)malloc(2 * 3 * (stringLength / 4 + 1));
92 | int outputLength = EVP_DecodeBlock(outputBuffer, strBuffer, stringLength);
93 |
94 | int zeroByteCounter = 0;
95 | for (int i = stringLength - 1; i >= 0; i--)
96 | {
97 | if (strBuffer[i] == '=')
98 | {
99 | zeroByteCounter++;
100 | }
101 | else
102 | {
103 | break;
104 | }
105 | }
106 |
107 | NSData *data = [[NSData alloc] initWithBytes:outputBuffer length:outputLength - zeroByteCounter];
108 | free(outputBuffer);
109 | return data;
110 | }
111 |
112 | NSString *rsaSignString(NSString *stringToSign, NSString *privateKeyFilePath, BOOL *signSuccess)
113 | {
114 | const char *message = [stringToSign cStringUsingEncoding:NSUTF8StringEncoding];
115 | int messageLength = strlen(message);
116 | unsigned char *sig = (unsigned char *)malloc(256);
117 | unsigned int sig_len;
118 | char *filePath = (char *)[privateKeyFilePath cStringUsingEncoding:NSUTF8StringEncoding];
119 | int sign_ok = rsa_sign_with_private_key_pem((char *)message, messageLength
120 | , sig, &sig_len
121 | , filePath);
122 | NSString *signedString = nil;
123 | if (1 == sign_ok)
124 | {
125 | *signSuccess = YES;
126 | signedString = base64StringFromData([NSData dataWithBytes:sig length:sig_len]);
127 | }
128 | else
129 | {
130 | *signSuccess = NO;
131 | }
132 | free(sig);
133 | return signedString;
134 | }
135 |
136 | void rsaVerifyString(NSString *stringToVerify, NSString *signature, NSString *publicKeyFilePath, BOOL *verifySuccess)
137 | {
138 | const char *message = [stringToVerify cStringUsingEncoding:NSUTF8StringEncoding];
139 | int messageLength = [stringToVerify lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
140 | NSData *signatureData = dataFromBase64String(signature);
141 | unsigned char *sig = (unsigned char *)[signatureData bytes];
142 | unsigned int sig_len = [signatureData length];
143 | char *filePath = (char *)[publicKeyFilePath cStringUsingEncoding:NSUTF8StringEncoding];
144 | int verify_ok = rsa_verify_with_public_key_pem((char *)message, messageLength
145 | , sig, sig_len
146 | , filePath);
147 | if (1 == verify_ok)
148 | {
149 | *verifySuccess = YES;
150 | }
151 | else
152 | {
153 | *verifySuccess = NO;
154 | }
155 | }
156 |
157 | NSString *formattedPEMString(NSString *originalString)
158 | {
159 | NSString *trimmedString = [originalString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
160 | const char *c = [trimmedString UTF8String];
161 | int len = [trimmedString length];
162 | NSMutableString *result = [NSMutableString string];
163 | [result appendString:@"-----BEGIN PRIVATE KEY-----\n"];
164 | int index = 0;
165 | while (index < len) {
166 | char cc = c[index];
167 | [result appendFormat:@"%c", cc];
168 | if ( (index+1) % 64 == 0)
169 | {
170 | [result appendString:@"\n"];
171 | }
172 | index++;
173 | }
174 | [result appendString:@"\n-----END PRIVATE KEY-----"];
175 | return result;
176 | }
177 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/aes.h:
--------------------------------------------------------------------------------
1 | /* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */
2 | /* ====================================================================
3 | * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions
7 | * are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright
13 | * notice, this list of conditions and the following disclaimer in
14 | * the documentation and/or other materials provided with the
15 | * distribution.
16 | *
17 | * 3. All advertising materials mentioning features or use of this
18 | * software must display the following acknowledgment:
19 | * "This product includes software developed by the OpenSSL Project
20 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21 | *
22 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23 | * endorse or promote products derived from this software without
24 | * prior written permission. For written permission, please contact
25 | * openssl-core@openssl.org.
26 | *
27 | * 5. Products derived from this software may not be called "OpenSSL"
28 | * nor may "OpenSSL" appear in their names without prior written
29 | * permission of the OpenSSL Project.
30 | *
31 | * 6. Redistributions of any form whatsoever must retain the following
32 | * acknowledgment:
33 | * "This product includes software developed by the OpenSSL Project
34 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
35 | *
36 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 | * OF THE POSSIBILITY OF SUCH DAMAGE.
48 | * ====================================================================
49 | *
50 | */
51 |
52 | #ifndef HEADER_AES_H
53 | #define HEADER_AES_H
54 |
55 | #include
56 |
57 | #ifdef OPENSSL_NO_AES
58 | #error AES is disabled.
59 | #endif
60 |
61 | #include
62 |
63 | #define AES_ENCRYPT 1
64 | #define AES_DECRYPT 0
65 |
66 | /* Because array size can't be a const in C, the following two are macros.
67 | Both sizes are in bytes. */
68 | #define AES_MAXNR 14
69 | #define AES_BLOCK_SIZE 16
70 |
71 | #ifdef __cplusplus
72 | extern "C" {
73 | #endif
74 |
75 | /* This should be a hidden type, but EVP requires that the size be known */
76 | struct aes_key_st {
77 | #ifdef AES_LONG
78 | unsigned long rd_key[4 *(AES_MAXNR + 1)];
79 | #else
80 | unsigned int rd_key[4 *(AES_MAXNR + 1)];
81 | #endif
82 | int rounds;
83 | };
84 | typedef struct aes_key_st AES_KEY;
85 |
86 | const char *AES_options(void);
87 |
88 | int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
89 | AES_KEY *key);
90 | int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
91 | AES_KEY *key);
92 |
93 | int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
94 | AES_KEY *key);
95 | int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
96 | AES_KEY *key);
97 |
98 | void AES_encrypt(const unsigned char *in, unsigned char *out,
99 | const AES_KEY *key);
100 | void AES_decrypt(const unsigned char *in, unsigned char *out,
101 | const AES_KEY *key);
102 |
103 | void AES_ecb_encrypt(const unsigned char *in, unsigned char *out,
104 | const AES_KEY *key, const int enc);
105 | void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
106 | size_t length, const AES_KEY *key,
107 | unsigned char *ivec, const int enc);
108 | void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
109 | size_t length, const AES_KEY *key,
110 | unsigned char *ivec, int *num, const int enc);
111 | void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
112 | size_t length, const AES_KEY *key,
113 | unsigned char *ivec, int *num, const int enc);
114 | void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
115 | size_t length, const AES_KEY *key,
116 | unsigned char *ivec, int *num, const int enc);
117 | void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,
118 | size_t length, const AES_KEY *key,
119 | unsigned char *ivec, int *num);
120 | void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
121 | size_t length, const AES_KEY *key,
122 | unsigned char ivec[AES_BLOCK_SIZE],
123 | unsigned char ecount_buf[AES_BLOCK_SIZE],
124 | unsigned int *num);
125 | /* NB: the IV is _two_ blocks long */
126 | void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
127 | size_t length, const AES_KEY *key,
128 | unsigned char *ivec, const int enc);
129 | /* NB: the IV is _four_ blocks long */
130 | void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
131 | size_t length, const AES_KEY *key,
132 | const AES_KEY *key2, const unsigned char *ivec,
133 | const int enc);
134 |
135 | int AES_wrap_key(AES_KEY *key, const unsigned char *iv,
136 | unsigned char *out,
137 | const unsigned char *in, unsigned int inlen);
138 | int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
139 | unsigned char *out,
140 | const unsigned char *in, unsigned int inlen);
141 |
142 |
143 | #ifdef __cplusplus
144 | }
145 | #endif
146 |
147 | #endif /* !HEADER_AES_H */
148 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/blowfish.h:
--------------------------------------------------------------------------------
1 | /* crypto/bf/blowfish.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_BLOWFISH_H
60 | #define HEADER_BLOWFISH_H
61 |
62 | #include
63 |
64 | #ifdef __cplusplus
65 | extern "C" {
66 | #endif
67 |
68 | #ifdef OPENSSL_NO_BF
69 | #error BF is disabled.
70 | #endif
71 |
72 | #define BF_ENCRYPT 1
73 | #define BF_DECRYPT 0
74 |
75 | /*
76 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
77 | * ! BF_LONG has to be at least 32 bits wide. If it's wider, then !
78 | * ! BF_LONG_LOG2 has to be defined along. !
79 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
80 | */
81 |
82 | #if defined(__LP32__)
83 | #define BF_LONG unsigned long
84 | #elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
85 | #define BF_LONG unsigned long
86 | #define BF_LONG_LOG2 3
87 | /*
88 | * _CRAY note. I could declare short, but I have no idea what impact
89 | * does it have on performance on none-T3E machines. I could declare
90 | * int, but at least on C90 sizeof(int) can be chosen at compile time.
91 | * So I've chosen long...
92 | *
93 | */
94 | #else
95 | #define BF_LONG unsigned int
96 | #endif
97 |
98 | #define BF_ROUNDS 16
99 | #define BF_BLOCK 8
100 |
101 | typedef struct bf_key_st
102 | {
103 | BF_LONG P[BF_ROUNDS+2];
104 | BF_LONG S[4*256];
105 | } BF_KEY;
106 |
107 | #ifdef OPENSSL_FIPS
108 | void private_BF_set_key(BF_KEY *key, int len, const unsigned char *data);
109 | #endif
110 | void BF_set_key(BF_KEY *key, int len, const unsigned char *data);
111 |
112 | void BF_encrypt(BF_LONG *data,const BF_KEY *key);
113 | void BF_decrypt(BF_LONG *data,const BF_KEY *key);
114 |
115 | void BF_ecb_encrypt(const unsigned char *in, unsigned char *out,
116 | const BF_KEY *key, int enc);
117 | void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
118 | const BF_KEY *schedule, unsigned char *ivec, int enc);
119 | void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length,
120 | const BF_KEY *schedule, unsigned char *ivec, int *num, int enc);
121 | void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length,
122 | const BF_KEY *schedule, unsigned char *ivec, int *num);
123 | const char *BF_options(void);
124 |
125 | #ifdef __cplusplus
126 | }
127 | #endif
128 |
129 | #endif
130 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/buffer.h:
--------------------------------------------------------------------------------
1 | /* crypto/buffer/buffer.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_BUFFER_H
60 | #define HEADER_BUFFER_H
61 |
62 | #include
63 |
64 | #ifdef __cplusplus
65 | extern "C" {
66 | #endif
67 |
68 | #include
69 |
70 | #if !defined(NO_SYS_TYPES_H)
71 | #include
72 | #endif
73 |
74 | /* Already declared in ossl_typ.h */
75 | /* typedef struct buf_mem_st BUF_MEM; */
76 |
77 | struct buf_mem_st
78 | {
79 | size_t length; /* current number of bytes */
80 | char *data;
81 | size_t max; /* size of buffer */
82 | };
83 |
84 | BUF_MEM *BUF_MEM_new(void);
85 | void BUF_MEM_free(BUF_MEM *a);
86 | int BUF_MEM_grow(BUF_MEM *str, size_t len);
87 | int BUF_MEM_grow_clean(BUF_MEM *str, size_t len);
88 | char * BUF_strdup(const char *str);
89 | char * BUF_strndup(const char *str, size_t siz);
90 | void * BUF_memdup(const void *data, size_t siz);
91 | void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz);
92 |
93 | /* safe string functions */
94 | size_t BUF_strlcpy(char *dst,const char *src,size_t siz);
95 | size_t BUF_strlcat(char *dst,const char *src,size_t siz);
96 |
97 |
98 | /* BEGIN ERROR CODES */
99 | /* The following lines are auto generated by the script mkerr.pl. Any changes
100 | * made after this point may be overwritten when the script is next run.
101 | */
102 | void ERR_load_BUF_strings(void);
103 |
104 | /* Error codes for the BUF functions. */
105 |
106 | /* Function codes. */
107 | #define BUF_F_BUF_MEMDUP 103
108 | #define BUF_F_BUF_MEM_GROW 100
109 | #define BUF_F_BUF_MEM_GROW_CLEAN 105
110 | #define BUF_F_BUF_MEM_NEW 101
111 | #define BUF_F_BUF_STRDUP 102
112 | #define BUF_F_BUF_STRNDUP 104
113 |
114 | /* Reason codes. */
115 |
116 | #ifdef __cplusplus
117 | }
118 | #endif
119 | #endif
120 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/camellia.h:
--------------------------------------------------------------------------------
1 | /* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */
2 | /* ====================================================================
3 | * Copyright (c) 2006 The OpenSSL Project. All rights reserved.
4 | *
5 | * Redistribution and use in source and binary forms, with or without
6 | * modification, are permitted provided that the following conditions
7 | * are met:
8 | *
9 | * 1. Redistributions of source code must retain the above copyright
10 | * notice, this list of conditions and the following disclaimer.
11 | *
12 | * 2. Redistributions in binary form must reproduce the above copyright
13 | * notice, this list of conditions and the following disclaimer in
14 | * the documentation and/or other materials provided with the
15 | * distribution.
16 | *
17 | * 3. All advertising materials mentioning features or use of this
18 | * software must display the following acknowledgment:
19 | * "This product includes software developed by the OpenSSL Project
20 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21 | *
22 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23 | * endorse or promote products derived from this software without
24 | * prior written permission. For written permission, please contact
25 | * openssl-core@openssl.org.
26 | *
27 | * 5. Products derived from this software may not be called "OpenSSL"
28 | * nor may "OpenSSL" appear in their names without prior written
29 | * permission of the OpenSSL Project.
30 | *
31 | * 6. Redistributions of any form whatsoever must retain the following
32 | * acknowledgment:
33 | * "This product includes software developed by the OpenSSL Project
34 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
35 | *
36 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 | * OF THE POSSIBILITY OF SUCH DAMAGE.
48 | * ====================================================================
49 | *
50 | */
51 |
52 | #ifndef HEADER_CAMELLIA_H
53 | #define HEADER_CAMELLIA_H
54 |
55 | #include
56 |
57 | #ifdef OPENSSL_NO_CAMELLIA
58 | #error CAMELLIA is disabled.
59 | #endif
60 |
61 | #include
62 |
63 | #define CAMELLIA_ENCRYPT 1
64 | #define CAMELLIA_DECRYPT 0
65 |
66 | /* Because array size can't be a const in C, the following two are macros.
67 | Both sizes are in bytes. */
68 |
69 | #ifdef __cplusplus
70 | extern "C" {
71 | #endif
72 |
73 | /* This should be a hidden type, but EVP requires that the size be known */
74 |
75 | #define CAMELLIA_BLOCK_SIZE 16
76 | #define CAMELLIA_TABLE_BYTE_LEN 272
77 | #define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4)
78 |
79 | typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match with WORD */
80 |
81 | struct camellia_key_st
82 | {
83 | union {
84 | double d; /* ensures 64-bit align */
85 | KEY_TABLE_TYPE rd_key;
86 | } u;
87 | int grand_rounds;
88 | };
89 | typedef struct camellia_key_st CAMELLIA_KEY;
90 |
91 | #ifdef OPENSSL_FIPS
92 | int private_Camellia_set_key(const unsigned char *userKey, const int bits,
93 | CAMELLIA_KEY *key);
94 | #endif
95 | int Camellia_set_key(const unsigned char *userKey, const int bits,
96 | CAMELLIA_KEY *key);
97 |
98 | void Camellia_encrypt(const unsigned char *in, unsigned char *out,
99 | const CAMELLIA_KEY *key);
100 | void Camellia_decrypt(const unsigned char *in, unsigned char *out,
101 | const CAMELLIA_KEY *key);
102 |
103 | void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out,
104 | const CAMELLIA_KEY *key, const int enc);
105 | void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out,
106 | size_t length, const CAMELLIA_KEY *key,
107 | unsigned char *ivec, const int enc);
108 | void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out,
109 | size_t length, const CAMELLIA_KEY *key,
110 | unsigned char *ivec, int *num, const int enc);
111 | void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out,
112 | size_t length, const CAMELLIA_KEY *key,
113 | unsigned char *ivec, int *num, const int enc);
114 | void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out,
115 | size_t length, const CAMELLIA_KEY *key,
116 | unsigned char *ivec, int *num, const int enc);
117 | void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out,
118 | size_t length, const CAMELLIA_KEY *key,
119 | unsigned char *ivec, int *num);
120 | void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out,
121 | size_t length, const CAMELLIA_KEY *key,
122 | unsigned char ivec[CAMELLIA_BLOCK_SIZE],
123 | unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE],
124 | unsigned int *num);
125 |
126 | #ifdef __cplusplus
127 | }
128 | #endif
129 |
130 | #endif /* !HEADER_Camellia_H */
131 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/cast.h:
--------------------------------------------------------------------------------
1 | /* crypto/cast/cast.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_CAST_H
60 | #define HEADER_CAST_H
61 |
62 | #ifdef __cplusplus
63 | extern "C" {
64 | #endif
65 |
66 | #include
67 |
68 | #ifdef OPENSSL_NO_CAST
69 | #error CAST is disabled.
70 | #endif
71 |
72 | #define CAST_ENCRYPT 1
73 | #define CAST_DECRYPT 0
74 |
75 | #define CAST_LONG unsigned int
76 |
77 | #define CAST_BLOCK 8
78 | #define CAST_KEY_LENGTH 16
79 |
80 | typedef struct cast_key_st
81 | {
82 | CAST_LONG data[32];
83 | int short_key; /* Use reduced rounds for short key */
84 | } CAST_KEY;
85 |
86 | #ifdef OPENSSL_FIPS
87 | void private_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
88 | #endif
89 | void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
90 | void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, const CAST_KEY *key,
91 | int enc);
92 | void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key);
93 | void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key);
94 | void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
95 | const CAST_KEY *ks, unsigned char *iv, int enc);
96 | void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out,
97 | long length, const CAST_KEY *schedule, unsigned char *ivec,
98 | int *num, int enc);
99 | void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out,
100 | long length, const CAST_KEY *schedule, unsigned char *ivec,
101 | int *num);
102 |
103 | #ifdef __cplusplus
104 | }
105 | #endif
106 |
107 | #endif
108 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/cmac.h:
--------------------------------------------------------------------------------
1 | /* crypto/cmac/cmac.h */
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 | * project.
4 | */
5 | /* ====================================================================
6 | * Copyright (c) 2010 The OpenSSL Project. All rights reserved.
7 | *
8 | * Redistribution and use in source and binary forms, with or without
9 | * modification, are permitted provided that the following conditions
10 | * are met:
11 | *
12 | * 1. Redistributions of source code must retain the above copyright
13 | * notice, this list of conditions and the following disclaimer.
14 | *
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in
17 | * the documentation and/or other materials provided with the
18 | * distribution.
19 | *
20 | * 3. All advertising materials mentioning features or use of this
21 | * software must display the following acknowledgment:
22 | * "This product includes software developed by the OpenSSL Project
23 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
24 | *
25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26 | * endorse or promote products derived from this software without
27 | * prior written permission. For written permission, please contact
28 | * licensing@OpenSSL.org.
29 | *
30 | * 5. Products derived from this software may not be called "OpenSSL"
31 | * nor may "OpenSSL" appear in their names without prior written
32 | * permission of the OpenSSL Project.
33 | *
34 | * 6. Redistributions of any form whatsoever must retain the following
35 | * acknowledgment:
36 | * "This product includes software developed by the OpenSSL Project
37 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
38 | *
39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50 | * OF THE POSSIBILITY OF SUCH DAMAGE.
51 | * ====================================================================
52 | */
53 |
54 |
55 | #ifndef HEADER_CMAC_H
56 | #define HEADER_CMAC_H
57 |
58 | #ifdef __cplusplus
59 | extern "C" {
60 | #endif
61 |
62 | #include
63 |
64 | /* Opaque */
65 | typedef struct CMAC_CTX_st CMAC_CTX;
66 |
67 | CMAC_CTX *CMAC_CTX_new(void);
68 | void CMAC_CTX_cleanup(CMAC_CTX *ctx);
69 | void CMAC_CTX_free(CMAC_CTX *ctx);
70 | EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx);
71 | int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in);
72 |
73 | int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,
74 | const EVP_CIPHER *cipher, ENGINE *impl);
75 | int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen);
76 | int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen);
77 | int CMAC_resume(CMAC_CTX *ctx);
78 |
79 | #ifdef __cplusplus
80 | }
81 | #endif
82 | #endif
83 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/comp.h:
--------------------------------------------------------------------------------
1 |
2 | #ifndef HEADER_COMP_H
3 | #define HEADER_COMP_H
4 |
5 | #include
6 |
7 | #ifdef __cplusplus
8 | extern "C" {
9 | #endif
10 |
11 | typedef struct comp_ctx_st COMP_CTX;
12 |
13 | typedef struct comp_method_st
14 | {
15 | int type; /* NID for compression library */
16 | const char *name; /* A text string to identify the library */
17 | int (*init)(COMP_CTX *ctx);
18 | void (*finish)(COMP_CTX *ctx);
19 | int (*compress)(COMP_CTX *ctx,
20 | unsigned char *out, unsigned int olen,
21 | unsigned char *in, unsigned int ilen);
22 | int (*expand)(COMP_CTX *ctx,
23 | unsigned char *out, unsigned int olen,
24 | unsigned char *in, unsigned int ilen);
25 | /* The following two do NOTHING, but are kept for backward compatibility */
26 | long (*ctrl)(void);
27 | long (*callback_ctrl)(void);
28 | } COMP_METHOD;
29 |
30 | struct comp_ctx_st
31 | {
32 | COMP_METHOD *meth;
33 | unsigned long compress_in;
34 | unsigned long compress_out;
35 | unsigned long expand_in;
36 | unsigned long expand_out;
37 |
38 | CRYPTO_EX_DATA ex_data;
39 | };
40 |
41 |
42 | COMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
43 | void COMP_CTX_free(COMP_CTX *ctx);
44 | int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
45 | unsigned char *in, int ilen);
46 | int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
47 | unsigned char *in, int ilen);
48 | COMP_METHOD *COMP_rle(void );
49 | COMP_METHOD *COMP_zlib(void );
50 | void COMP_zlib_cleanup(void);
51 |
52 | #ifdef HEADER_BIO_H
53 | #ifdef ZLIB
54 | BIO_METHOD *BIO_f_zlib(void);
55 | #endif
56 | #endif
57 |
58 | /* BEGIN ERROR CODES */
59 | /* The following lines are auto generated by the script mkerr.pl. Any changes
60 | * made after this point may be overwritten when the script is next run.
61 | */
62 | void ERR_load_COMP_strings(void);
63 |
64 | /* Error codes for the COMP functions. */
65 |
66 | /* Function codes. */
67 | #define COMP_F_BIO_ZLIB_FLUSH 99
68 | #define COMP_F_BIO_ZLIB_NEW 100
69 | #define COMP_F_BIO_ZLIB_READ 101
70 | #define COMP_F_BIO_ZLIB_WRITE 102
71 |
72 | /* Reason codes. */
73 | #define COMP_R_ZLIB_DEFLATE_ERROR 99
74 | #define COMP_R_ZLIB_INFLATE_ERROR 100
75 | #define COMP_R_ZLIB_NOT_SUPPORTED 101
76 |
77 | #ifdef __cplusplus
78 | }
79 | #endif
80 | #endif
81 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/conf_api.h:
--------------------------------------------------------------------------------
1 | /* conf_api.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_CONF_API_H
60 | #define HEADER_CONF_API_H
61 |
62 | #include
63 | #include
64 |
65 | #ifdef __cplusplus
66 | extern "C" {
67 | #endif
68 |
69 | /* Up until OpenSSL 0.9.5a, this was new_section */
70 | CONF_VALUE *_CONF_new_section(CONF *conf, const char *section);
71 | /* Up until OpenSSL 0.9.5a, this was get_section */
72 | CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section);
73 | /* Up until OpenSSL 0.9.5a, this was CONF_get_section */
74 | STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf,
75 | const char *section);
76 |
77 | int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value);
78 | char *_CONF_get_string(const CONF *conf, const char *section,
79 | const char *name);
80 | long _CONF_get_number(const CONF *conf, const char *section, const char *name);
81 |
82 | int _CONF_new_data(CONF *conf);
83 | void _CONF_free_data(CONF *conf);
84 |
85 | #ifdef __cplusplus
86 | }
87 | #endif
88 | #endif
89 |
90 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/ebcdic.h:
--------------------------------------------------------------------------------
1 | /* crypto/ebcdic.h */
2 |
3 | #ifndef HEADER_EBCDIC_H
4 | #define HEADER_EBCDIC_H
5 |
6 | #include
7 |
8 | /* Avoid name clashes with other applications */
9 | #define os_toascii _openssl_os_toascii
10 | #define os_toebcdic _openssl_os_toebcdic
11 | #define ebcdic2ascii _openssl_ebcdic2ascii
12 | #define ascii2ebcdic _openssl_ascii2ebcdic
13 |
14 | extern const unsigned char os_toascii[256];
15 | extern const unsigned char os_toebcdic[256];
16 | void *ebcdic2ascii(void *dest, const void *srce, size_t count);
17 | void *ascii2ebcdic(void *dest, const void *srce, size_t count);
18 |
19 | #endif
20 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/ecdh.h:
--------------------------------------------------------------------------------
1 | /* crypto/ecdh/ecdh.h */
2 | /* ====================================================================
3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
4 | *
5 | * The Elliptic Curve Public-Key Crypto Library (ECC Code) included
6 | * herein is developed by SUN MICROSYSTEMS, INC., and is contributed
7 | * to the OpenSSL project.
8 | *
9 | * The ECC Code is licensed pursuant to the OpenSSL open source
10 | * license provided below.
11 | *
12 | * The ECDH software is originally written by Douglas Stebila of
13 | * Sun Microsystems Laboratories.
14 | *
15 | */
16 | /* ====================================================================
17 | * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
18 | *
19 | * Redistribution and use in source and binary forms, with or without
20 | * modification, are permitted provided that the following conditions
21 | * are met:
22 | *
23 | * 1. Redistributions of source code must retain the above copyright
24 | * notice, this list of conditions and the following disclaimer.
25 | *
26 | * 2. Redistributions in binary form must reproduce the above copyright
27 | * notice, this list of conditions and the following disclaimer in
28 | * the documentation and/or other materials provided with the
29 | * distribution.
30 | *
31 | * 3. All advertising materials mentioning features or use of this
32 | * software must display the following acknowledgment:
33 | * "This product includes software developed by the OpenSSL Project
34 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
35 | *
36 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
37 | * endorse or promote products derived from this software without
38 | * prior written permission. For written permission, please contact
39 | * licensing@OpenSSL.org.
40 | *
41 | * 5. Products derived from this software may not be called "OpenSSL"
42 | * nor may "OpenSSL" appear in their names without prior written
43 | * permission of the OpenSSL Project.
44 | *
45 | * 6. Redistributions of any form whatsoever must retain the following
46 | * acknowledgment:
47 | * "This product includes software developed by the OpenSSL Project
48 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
49 | *
50 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
51 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
52 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
53 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
54 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
55 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
56 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
57 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
58 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
59 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
60 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
61 | * OF THE POSSIBILITY OF SUCH DAMAGE.
62 | * ====================================================================
63 | *
64 | * This product includes cryptographic software written by Eric Young
65 | * (eay@cryptsoft.com). This product includes software written by Tim
66 | * Hudson (tjh@cryptsoft.com).
67 | *
68 | */
69 | #ifndef HEADER_ECDH_H
70 | #define HEADER_ECDH_H
71 |
72 | #include
73 |
74 | #ifdef OPENSSL_NO_ECDH
75 | #error ECDH is disabled.
76 | #endif
77 |
78 | #include
79 | #include
80 | #ifndef OPENSSL_NO_DEPRECATED
81 | #include
82 | #endif
83 |
84 | #ifdef __cplusplus
85 | extern "C" {
86 | #endif
87 |
88 | const ECDH_METHOD *ECDH_OpenSSL(void);
89 |
90 | void ECDH_set_default_method(const ECDH_METHOD *);
91 | const ECDH_METHOD *ECDH_get_default_method(void);
92 | int ECDH_set_method(EC_KEY *, const ECDH_METHOD *);
93 |
94 | int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, EC_KEY *ecdh,
95 | void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen));
96 |
97 | int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new
98 | *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
99 | int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg);
100 | void *ECDH_get_ex_data(EC_KEY *d, int idx);
101 |
102 |
103 | /* BEGIN ERROR CODES */
104 | /* The following lines are auto generated by the script mkerr.pl. Any changes
105 | * made after this point may be overwritten when the script is next run.
106 | */
107 | void ERR_load_ECDH_strings(void);
108 |
109 | /* Error codes for the ECDH functions. */
110 |
111 | /* Function codes. */
112 | #define ECDH_F_ECDH_CHECK 102
113 | #define ECDH_F_ECDH_COMPUTE_KEY 100
114 | #define ECDH_F_ECDH_DATA_NEW_METHOD 101
115 |
116 | /* Reason codes. */
117 | #define ECDH_R_KDF_FAILED 102
118 | #define ECDH_R_NON_FIPS_METHOD 103
119 | #define ECDH_R_NO_PRIVATE_VALUE 100
120 | #define ECDH_R_POINT_ARITHMETIC_FAILURE 101
121 |
122 | #ifdef __cplusplus
123 | }
124 | #endif
125 | #endif
126 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/hmac.h:
--------------------------------------------------------------------------------
1 | /* crypto/hmac/hmac.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 | #ifndef HEADER_HMAC_H
59 | #define HEADER_HMAC_H
60 |
61 | #include
62 |
63 | #ifdef OPENSSL_NO_HMAC
64 | #error HMAC is disabled.
65 | #endif
66 |
67 | #include
68 |
69 | #define HMAC_MAX_MD_CBLOCK 128 /* largest known is SHA512 */
70 |
71 | #ifdef __cplusplus
72 | extern "C" {
73 | #endif
74 |
75 | typedef struct hmac_ctx_st
76 | {
77 | const EVP_MD *md;
78 | EVP_MD_CTX md_ctx;
79 | EVP_MD_CTX i_ctx;
80 | EVP_MD_CTX o_ctx;
81 | unsigned int key_length;
82 | unsigned char key[HMAC_MAX_MD_CBLOCK];
83 | } HMAC_CTX;
84 |
85 | #define HMAC_size(e) (EVP_MD_size((e)->md))
86 |
87 |
88 | void HMAC_CTX_init(HMAC_CTX *ctx);
89 | void HMAC_CTX_cleanup(HMAC_CTX *ctx);
90 |
91 | #define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx) /* deprecated */
92 |
93 | int HMAC_Init(HMAC_CTX *ctx, const void *key, int len,
94 | const EVP_MD *md); /* deprecated */
95 | int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
96 | const EVP_MD *md, ENGINE *impl);
97 | int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
98 | int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
99 | unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
100 | const unsigned char *d, size_t n, unsigned char *md,
101 | unsigned int *md_len);
102 | int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx);
103 |
104 | void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags);
105 |
106 | #ifdef __cplusplus
107 | }
108 | #endif
109 |
110 | #endif
111 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/idea.h:
--------------------------------------------------------------------------------
1 | /* crypto/idea/idea.h */
2 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_IDEA_H
60 | #define HEADER_IDEA_H
61 |
62 | #include /* IDEA_INT, OPENSSL_NO_IDEA */
63 |
64 | #ifdef OPENSSL_NO_IDEA
65 | #error IDEA is disabled.
66 | #endif
67 |
68 | #define IDEA_ENCRYPT 1
69 | #define IDEA_DECRYPT 0
70 |
71 | #define IDEA_BLOCK 8
72 | #define IDEA_KEY_LENGTH 16
73 |
74 | #ifdef __cplusplus
75 | extern "C" {
76 | #endif
77 |
78 | typedef struct idea_key_st
79 | {
80 | IDEA_INT data[9][6];
81 | } IDEA_KEY_SCHEDULE;
82 |
83 | const char *idea_options(void);
84 | void idea_ecb_encrypt(const unsigned char *in, unsigned char *out,
85 | IDEA_KEY_SCHEDULE *ks);
86 | #ifdef OPENSSL_FIPS
87 | void private_idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks);
88 | #endif
89 | void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks);
90 | void idea_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk);
91 | void idea_cbc_encrypt(const unsigned char *in, unsigned char *out,
92 | long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv,int enc);
93 | void idea_cfb64_encrypt(const unsigned char *in, unsigned char *out,
94 | long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv,
95 | int *num,int enc);
96 | void idea_ofb64_encrypt(const unsigned char *in, unsigned char *out,
97 | long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, int *num);
98 | void idea_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks);
99 | #ifdef __cplusplus
100 | }
101 | #endif
102 |
103 | #endif
104 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/kssl.h:
--------------------------------------------------------------------------------
1 | /* ssl/kssl.h -*- mode: C; c-file-style: "eay" -*- */
2 | /* Written by Vern Staats for the OpenSSL project 2000.
3 | * project 2000.
4 | */
5 | /* ====================================================================
6 | * Copyright (c) 2000 The OpenSSL Project. All rights reserved.
7 | *
8 | * Redistribution and use in source and binary forms, with or without
9 | * modification, are permitted provided that the following conditions
10 | * are met:
11 | *
12 | * 1. Redistributions of source code must retain the above copyright
13 | * notice, this list of conditions and the following disclaimer.
14 | *
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in
17 | * the documentation and/or other materials provided with the
18 | * distribution.
19 | *
20 | * 3. All advertising materials mentioning features or use of this
21 | * software must display the following acknowledgment:
22 | * "This product includes software developed by the OpenSSL Project
23 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
24 | *
25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26 | * endorse or promote products derived from this software without
27 | * prior written permission. For written permission, please contact
28 | * licensing@OpenSSL.org.
29 | *
30 | * 5. Products derived from this software may not be called "OpenSSL"
31 | * nor may "OpenSSL" appear in their names without prior written
32 | * permission of the OpenSSL Project.
33 | *
34 | * 6. Redistributions of any form whatsoever must retain the following
35 | * acknowledgment:
36 | * "This product includes software developed by the OpenSSL Project
37 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
38 | *
39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50 | * OF THE POSSIBILITY OF SUCH DAMAGE.
51 | * ====================================================================
52 | *
53 | * This product includes cryptographic software written by Eric Young
54 | * (eay@cryptsoft.com). This product includes software written by Tim
55 | * Hudson (tjh@cryptsoft.com).
56 | *
57 | */
58 |
59 | /*
60 | ** 19990701 VRS Started.
61 | */
62 |
63 | #ifndef KSSL_H
64 | #define KSSL_H
65 |
66 | #include
67 |
68 | #ifndef OPENSSL_NO_KRB5
69 |
70 | #include
71 | #include
72 | #include
73 | #ifdef OPENSSL_SYS_WIN32
74 | /* These can sometimes get redefined indirectly by krb5 header files
75 | * after they get undefed in ossl_typ.h
76 | */
77 | #undef X509_NAME
78 | #undef X509_EXTENSIONS
79 | #undef OCSP_REQUEST
80 | #undef OCSP_RESPONSE
81 | #endif
82 |
83 | #ifdef __cplusplus
84 | extern "C" {
85 | #endif
86 |
87 | /*
88 | ** Depending on which KRB5 implementation used, some types from
89 | ** the other may be missing. Resolve that here and now
90 | */
91 | #ifdef KRB5_HEIMDAL
92 | typedef unsigned char krb5_octet;
93 | #define FAR
94 | #else
95 |
96 | #ifndef FAR
97 | #define FAR
98 | #endif
99 |
100 | #endif
101 |
102 | /* Uncomment this to debug kssl problems or
103 | ** to trace usage of the Kerberos session key
104 | **
105 | ** #define KSSL_DEBUG
106 | */
107 |
108 | #ifndef KRB5SVC
109 | #define KRB5SVC "host"
110 | #endif
111 |
112 | #ifndef KRB5KEYTAB
113 | #define KRB5KEYTAB "/etc/krb5.keytab"
114 | #endif
115 |
116 | #ifndef KRB5SENDAUTH
117 | #define KRB5SENDAUTH 1
118 | #endif
119 |
120 | #ifndef KRB5CHECKAUTH
121 | #define KRB5CHECKAUTH 1
122 | #endif
123 |
124 | #ifndef KSSL_CLOCKSKEW
125 | #define KSSL_CLOCKSKEW 300;
126 | #endif
127 |
128 | #define KSSL_ERR_MAX 255
129 | typedef struct kssl_err_st {
130 | int reason;
131 | char text[KSSL_ERR_MAX+1];
132 | } KSSL_ERR;
133 |
134 |
135 | /* Context for passing
136 | ** (1) Kerberos session key to SSL, and
137 | ** (2) Config data between application and SSL lib
138 | */
139 | typedef struct kssl_ctx_st
140 | {
141 | /* used by: disposition: */
142 | char *service_name; /* C,S default ok (kssl) */
143 | char *service_host; /* C input, REQUIRED */
144 | char *client_princ; /* S output from krb5 ticket */
145 | char *keytab_file; /* S NULL (/etc/krb5.keytab) */
146 | char *cred_cache; /* C NULL (default) */
147 | krb5_enctype enctype;
148 | int length;
149 | krb5_octet FAR *key;
150 | } KSSL_CTX;
151 |
152 | #define KSSL_CLIENT 1
153 | #define KSSL_SERVER 2
154 | #define KSSL_SERVICE 3
155 | #define KSSL_KEYTAB 4
156 |
157 | #define KSSL_CTX_OK 0
158 | #define KSSL_CTX_ERR 1
159 | #define KSSL_NOMEM 2
160 |
161 | /* Public (for use by applications that use OpenSSL with Kerberos 5 support */
162 | krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text);
163 | KSSL_CTX *kssl_ctx_new(void);
164 | KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx);
165 | void kssl_ctx_show(KSSL_CTX *kssl_ctx);
166 | krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which,
167 | krb5_data *realm, krb5_data *entity, int nentities);
168 | krb5_error_code kssl_cget_tkt(KSSL_CTX *kssl_ctx, krb5_data **enc_tktp,
169 | krb5_data *authenp, KSSL_ERR *kssl_err);
170 | krb5_error_code kssl_sget_tkt(KSSL_CTX *kssl_ctx, krb5_data *indata,
171 | krb5_ticket_times *ttimes, KSSL_ERR *kssl_err);
172 | krb5_error_code kssl_ctx_setkey(KSSL_CTX *kssl_ctx, krb5_keyblock *session);
173 | void kssl_err_set(KSSL_ERR *kssl_err, int reason, char *text);
174 | void kssl_krb5_free_data_contents(krb5_context context, krb5_data *data);
175 | krb5_error_code kssl_build_principal_2(krb5_context context,
176 | krb5_principal *princ, int rlen, const char *realm,
177 | int slen, const char *svc, int hlen, const char *host);
178 | krb5_error_code kssl_validate_times(krb5_timestamp atime,
179 | krb5_ticket_times *ttimes);
180 | krb5_error_code kssl_check_authent(KSSL_CTX *kssl_ctx, krb5_data *authentp,
181 | krb5_timestamp *atimep, KSSL_ERR *kssl_err);
182 | unsigned char *kssl_skip_confound(krb5_enctype enctype, unsigned char *authn);
183 |
184 | void SSL_set0_kssl_ctx(SSL *s, KSSL_CTX *kctx);
185 | KSSL_CTX * SSL_get0_kssl_ctx(SSL *s);
186 | char *kssl_ctx_get0_client_princ(KSSL_CTX *kctx);
187 |
188 | #ifdef __cplusplus
189 | }
190 | #endif
191 | #endif /* OPENSSL_NO_KRB5 */
192 | #endif /* KSSL_H */
193 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/md4.h:
--------------------------------------------------------------------------------
1 | /* crypto/md4/md4.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_MD4_H
60 | #define HEADER_MD4_H
61 |
62 | #include
63 | #include
64 |
65 | #ifdef __cplusplus
66 | extern "C" {
67 | #endif
68 |
69 | #ifdef OPENSSL_NO_MD4
70 | #error MD4 is disabled.
71 | #endif
72 |
73 | /*
74 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
75 | * ! MD4_LONG has to be at least 32 bits wide. If it's wider, then !
76 | * ! MD4_LONG_LOG2 has to be defined along. !
77 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
78 | */
79 |
80 | #if defined(__LP32__)
81 | #define MD4_LONG unsigned long
82 | #elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
83 | #define MD4_LONG unsigned long
84 | #define MD4_LONG_LOG2 3
85 | /*
86 | * _CRAY note. I could declare short, but I have no idea what impact
87 | * does it have on performance on none-T3E machines. I could declare
88 | * int, but at least on C90 sizeof(int) can be chosen at compile time.
89 | * So I've chosen long...
90 | *
91 | */
92 | #else
93 | #define MD4_LONG unsigned int
94 | #endif
95 |
96 | #define MD4_CBLOCK 64
97 | #define MD4_LBLOCK (MD4_CBLOCK/4)
98 | #define MD4_DIGEST_LENGTH 16
99 |
100 | typedef struct MD4state_st
101 | {
102 | MD4_LONG A,B,C,D;
103 | MD4_LONG Nl,Nh;
104 | MD4_LONG data[MD4_LBLOCK];
105 | unsigned int num;
106 | } MD4_CTX;
107 |
108 | #ifdef OPENSSL_FIPS
109 | int private_MD4_Init(MD4_CTX *c);
110 | #endif
111 | int MD4_Init(MD4_CTX *c);
112 | int MD4_Update(MD4_CTX *c, const void *data, size_t len);
113 | int MD4_Final(unsigned char *md, MD4_CTX *c);
114 | unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md);
115 | void MD4_Transform(MD4_CTX *c, const unsigned char *b);
116 | #ifdef __cplusplus
117 | }
118 | #endif
119 |
120 | #endif
121 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/md5.h:
--------------------------------------------------------------------------------
1 | /* crypto/md5/md5.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_MD5_H
60 | #define HEADER_MD5_H
61 |
62 | #include
63 | #include
64 |
65 | #ifdef __cplusplus
66 | extern "C" {
67 | #endif
68 |
69 | #ifdef OPENSSL_NO_MD5
70 | #error MD5 is disabled.
71 | #endif
72 |
73 | /*
74 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
75 | * ! MD5_LONG has to be at least 32 bits wide. If it's wider, then !
76 | * ! MD5_LONG_LOG2 has to be defined along. !
77 | * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
78 | */
79 |
80 | #if defined(__LP32__)
81 | #define MD5_LONG unsigned long
82 | #elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
83 | #define MD5_LONG unsigned long
84 | #define MD5_LONG_LOG2 3
85 | /*
86 | * _CRAY note. I could declare short, but I have no idea what impact
87 | * does it have on performance on none-T3E machines. I could declare
88 | * int, but at least on C90 sizeof(int) can be chosen at compile time.
89 | * So I've chosen long...
90 | *
91 | */
92 | #else
93 | #define MD5_LONG unsigned int
94 | #endif
95 |
96 | #define MD5_CBLOCK 64
97 | #define MD5_LBLOCK (MD5_CBLOCK/4)
98 | #define MD5_DIGEST_LENGTH 16
99 |
100 | typedef struct MD5state_st
101 | {
102 | MD5_LONG A,B,C,D;
103 | MD5_LONG Nl,Nh;
104 | MD5_LONG data[MD5_LBLOCK];
105 | unsigned int num;
106 | } MD5_CTX;
107 |
108 | #ifdef OPENSSL_FIPS
109 | int private_MD5_Init(MD5_CTX *c);
110 | #endif
111 | int MD5_Init(MD5_CTX *c);
112 | int MD5_Update(MD5_CTX *c, const void *data, size_t len);
113 | int MD5_Final(unsigned char *md, MD5_CTX *c);
114 | unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md);
115 | void MD5_Transform(MD5_CTX *c, const unsigned char *b);
116 | #ifdef __cplusplus
117 | }
118 | #endif
119 |
120 | #endif
121 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/mdc2.h:
--------------------------------------------------------------------------------
1 | /* crypto/mdc2/mdc2.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_MDC2_H
60 | #define HEADER_MDC2_H
61 |
62 | #include
63 |
64 | #ifdef __cplusplus
65 | extern "C" {
66 | #endif
67 |
68 | #ifdef OPENSSL_NO_MDC2
69 | #error MDC2 is disabled.
70 | #endif
71 |
72 | #define MDC2_BLOCK 8
73 | #define MDC2_DIGEST_LENGTH 16
74 |
75 | typedef struct mdc2_ctx_st
76 | {
77 | unsigned int num;
78 | unsigned char data[MDC2_BLOCK];
79 | DES_cblock h,hh;
80 | int pad_type; /* either 1 or 2, default 1 */
81 | } MDC2_CTX;
82 |
83 |
84 | #ifdef OPENSSL_FIPS
85 | int private_MDC2_Init(MDC2_CTX *c);
86 | #endif
87 | int MDC2_Init(MDC2_CTX *c);
88 | int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len);
89 | int MDC2_Final(unsigned char *md, MDC2_CTX *c);
90 | unsigned char *MDC2(const unsigned char *d, size_t n,
91 | unsigned char *md);
92 |
93 | #ifdef __cplusplus
94 | }
95 | #endif
96 |
97 | #endif
98 |
99 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/modes.h:
--------------------------------------------------------------------------------
1 | /* ====================================================================
2 | * Copyright (c) 2008 The OpenSSL Project. All rights reserved.
3 | *
4 | * Rights for redistribution and usage in source and binary
5 | * forms are granted according to the OpenSSL license.
6 | */
7 |
8 | #include
9 |
10 | typedef void (*block128_f)(const unsigned char in[16],
11 | unsigned char out[16],
12 | const void *key);
13 |
14 | typedef void (*cbc128_f)(const unsigned char *in, unsigned char *out,
15 | size_t len, const void *key,
16 | unsigned char ivec[16], int enc);
17 |
18 | typedef void (*ctr128_f)(const unsigned char *in, unsigned char *out,
19 | size_t blocks, const void *key,
20 | const unsigned char ivec[16]);
21 |
22 | typedef void (*ccm128_f)(const unsigned char *in, unsigned char *out,
23 | size_t blocks, const void *key,
24 | const unsigned char ivec[16],unsigned char cmac[16]);
25 |
26 | void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out,
27 | size_t len, const void *key,
28 | unsigned char ivec[16], block128_f block);
29 | void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,
30 | size_t len, const void *key,
31 | unsigned char ivec[16], block128_f block);
32 |
33 | void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out,
34 | size_t len, const void *key,
35 | unsigned char ivec[16], unsigned char ecount_buf[16],
36 | unsigned int *num, block128_f block);
37 |
38 | void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out,
39 | size_t len, const void *key,
40 | unsigned char ivec[16], unsigned char ecount_buf[16],
41 | unsigned int *num, ctr128_f ctr);
42 |
43 | void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out,
44 | size_t len, const void *key,
45 | unsigned char ivec[16], int *num,
46 | block128_f block);
47 |
48 | void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
49 | size_t len, const void *key,
50 | unsigned char ivec[16], int *num,
51 | int enc, block128_f block);
52 | void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out,
53 | size_t length, const void *key,
54 | unsigned char ivec[16], int *num,
55 | int enc, block128_f block);
56 | void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out,
57 | size_t bits, const void *key,
58 | unsigned char ivec[16], int *num,
59 | int enc, block128_f block);
60 |
61 | size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, unsigned char *out,
62 | size_t len, const void *key,
63 | unsigned char ivec[16], block128_f block);
64 | size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out,
65 | size_t len, const void *key,
66 | unsigned char ivec[16], cbc128_f cbc);
67 | size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, unsigned char *out,
68 | size_t len, const void *key,
69 | unsigned char ivec[16], block128_f block);
70 | size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,
71 | size_t len, const void *key,
72 | unsigned char ivec[16], cbc128_f cbc);
73 |
74 | size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, unsigned char *out,
75 | size_t len, const void *key,
76 | unsigned char ivec[16], block128_f block);
77 | size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out,
78 | size_t len, const void *key,
79 | unsigned char ivec[16], cbc128_f cbc);
80 | size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, unsigned char *out,
81 | size_t len, const void *key,
82 | unsigned char ivec[16], block128_f block);
83 | size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out,
84 | size_t len, const void *key,
85 | unsigned char ivec[16], cbc128_f cbc);
86 |
87 | typedef struct gcm128_context GCM128_CONTEXT;
88 |
89 | GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block);
90 | void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx,void *key,block128_f block);
91 | void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv,
92 | size_t len);
93 | int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad,
94 | size_t len);
95 | int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,
96 | const unsigned char *in, unsigned char *out,
97 | size_t len);
98 | int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,
99 | const unsigned char *in, unsigned char *out,
100 | size_t len);
101 | int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,
102 | const unsigned char *in, unsigned char *out,
103 | size_t len, ctr128_f stream);
104 | int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,
105 | const unsigned char *in, unsigned char *out,
106 | size_t len, ctr128_f stream);
107 | int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx,const unsigned char *tag,
108 | size_t len);
109 | void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len);
110 | void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx);
111 |
112 | typedef struct ccm128_context CCM128_CONTEXT;
113 |
114 | void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx,
115 | unsigned int M, unsigned int L, void *key,block128_f block);
116 | int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx,
117 | const unsigned char *nonce, size_t nlen, size_t mlen);
118 | void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx,
119 | const unsigned char *aad, size_t alen);
120 | int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx,
121 | const unsigned char *inp, unsigned char *out, size_t len);
122 | int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx,
123 | const unsigned char *inp, unsigned char *out, size_t len);
124 | int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx,
125 | const unsigned char *inp, unsigned char *out, size_t len,
126 | ccm128_f stream);
127 | int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx,
128 | const unsigned char *inp, unsigned char *out, size_t len,
129 | ccm128_f stream);
130 | size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len);
131 |
132 | typedef struct xts128_context XTS128_CONTEXT;
133 |
134 | int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char iv[16],
135 | const unsigned char *inp, unsigned char *out, size_t len, int enc);
136 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/opensslv.h:
--------------------------------------------------------------------------------
1 | #ifndef HEADER_OPENSSLV_H
2 | #define HEADER_OPENSSLV_H
3 |
4 | /* Numeric release version identifier:
5 | * MNNFFPPS: major minor fix patch status
6 | * The status nibble has one of the values 0 for development, 1 to e for betas
7 | * 1 to 14, and f for release. The patch level is exactly that.
8 | * For example:
9 | * 0.9.3-dev 0x00903000
10 | * 0.9.3-beta1 0x00903001
11 | * 0.9.3-beta2-dev 0x00903002
12 | * 0.9.3-beta2 0x00903002 (same as ...beta2-dev)
13 | * 0.9.3 0x0090300f
14 | * 0.9.3a 0x0090301f
15 | * 0.9.4 0x0090400f
16 | * 1.2.3z 0x102031af
17 | *
18 | * For continuity reasons (because 0.9.5 is already out, and is coded
19 | * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level
20 | * part is slightly different, by setting the highest bit. This means
21 | * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start
22 | * with 0x0090600S...
23 | *
24 | * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.)
25 | * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
26 | * major minor fix final patch/beta)
27 | */
28 | #define OPENSSL_VERSION_NUMBER 0x1000108fL
29 | #ifdef OPENSSL_FIPS
30 | #define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1h-fips 5 Jun 2014"
31 | #else
32 | #define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1h 5 Jun 2014"
33 | #endif
34 | #define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT
35 |
36 |
37 | /* The macros below are to be used for shared library (.so, .dll, ...)
38 | * versioning. That kind of versioning works a bit differently between
39 | * operating systems. The most usual scheme is to set a major and a minor
40 | * number, and have the runtime loader check that the major number is equal
41 | * to what it was at application link time, while the minor number has to
42 | * be greater or equal to what it was at application link time. With this
43 | * scheme, the version number is usually part of the file name, like this:
44 | *
45 | * libcrypto.so.0.9
46 | *
47 | * Some unixen also make a softlink with the major verson number only:
48 | *
49 | * libcrypto.so.0
50 | *
51 | * On Tru64 and IRIX 6.x it works a little bit differently. There, the
52 | * shared library version is stored in the file, and is actually a series
53 | * of versions, separated by colons. The rightmost version present in the
54 | * library when linking an application is stored in the application to be
55 | * matched at run time. When the application is run, a check is done to
56 | * see if the library version stored in the application matches any of the
57 | * versions in the version string of the library itself.
58 | * This version string can be constructed in any way, depending on what
59 | * kind of matching is desired. However, to implement the same scheme as
60 | * the one used in the other unixen, all compatible versions, from lowest
61 | * to highest, should be part of the string. Consecutive builds would
62 | * give the following versions strings:
63 | *
64 | * 3.0
65 | * 3.0:3.1
66 | * 3.0:3.1:3.2
67 | * 4.0
68 | * 4.0:4.1
69 | *
70 | * Notice how version 4 is completely incompatible with version, and
71 | * therefore give the breach you can see.
72 | *
73 | * There may be other schemes as well that I haven't yet discovered.
74 | *
75 | * So, here's the way it works here: first of all, the library version
76 | * number doesn't need at all to match the overall OpenSSL version.
77 | * However, it's nice and more understandable if it actually does.
78 | * The current library version is stored in the macro SHLIB_VERSION_NUMBER,
79 | * which is just a piece of text in the format "M.m.e" (Major, minor, edit).
80 | * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways,
81 | * we need to keep a history of version numbers, which is done in the
82 | * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and
83 | * should only keep the versions that are binary compatible with the current.
84 | */
85 | #define SHLIB_VERSION_HISTORY ""
86 | #define SHLIB_VERSION_NUMBER "1.0.0"
87 |
88 |
89 | #endif /* HEADER_OPENSSLV_H */
90 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/pem2.h:
--------------------------------------------------------------------------------
1 | /* ====================================================================
2 | * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions
6 | * are met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in
13 | * the documentation and/or other materials provided with the
14 | * distribution.
15 | *
16 | * 3. All advertising materials mentioning features or use of this
17 | * software must display the following acknowledgment:
18 | * "This product includes software developed by the OpenSSL Project
19 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
20 | *
21 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 | * endorse or promote products derived from this software without
23 | * prior written permission. For written permission, please contact
24 | * licensing@OpenSSL.org.
25 | *
26 | * 5. Products derived from this software may not be called "OpenSSL"
27 | * nor may "OpenSSL" appear in their names without prior written
28 | * permission of the OpenSSL Project.
29 | *
30 | * 6. Redistributions of any form whatsoever must retain the following
31 | * acknowledgment:
32 | * "This product includes software developed by the OpenSSL Project
33 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
34 | *
35 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 | * OF THE POSSIBILITY OF SUCH DAMAGE.
47 | * ====================================================================
48 | *
49 | * This product includes cryptographic software written by Eric Young
50 | * (eay@cryptsoft.com). This product includes software written by Tim
51 | * Hudson (tjh@cryptsoft.com).
52 | *
53 | */
54 |
55 | /*
56 | * This header only exists to break a circular dependency between pem and err
57 | * Ben 30 Jan 1999.
58 | */
59 |
60 | #ifdef __cplusplus
61 | extern "C" {
62 | #endif
63 |
64 | #ifndef HEADER_PEM_H
65 | void ERR_load_PEM_strings(void);
66 | #endif
67 |
68 | #ifdef __cplusplus
69 | }
70 | #endif
71 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/pqueue.h:
--------------------------------------------------------------------------------
1 | /* crypto/pqueue/pqueue.h */
2 | /*
3 | * DTLS implementation written by Nagendra Modadugu
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
5 | */
6 | /* ====================================================================
7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | *
16 | * 2. Redistributions in binary form must reproduce the above copyright
17 | * notice, this list of conditions and the following disclaimer in
18 | * the documentation and/or other materials provided with the
19 | * distribution.
20 | *
21 | * 3. All advertising materials mentioning features or use of this
22 | * software must display the following acknowledgment:
23 | * "This product includes software developed by the OpenSSL Project
24 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
25 | *
26 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
27 | * endorse or promote products derived from this software without
28 | * prior written permission. For written permission, please contact
29 | * openssl-core@OpenSSL.org.
30 | *
31 | * 5. Products derived from this software may not be called "OpenSSL"
32 | * nor may "OpenSSL" appear in their names without prior written
33 | * permission of the OpenSSL Project.
34 | *
35 | * 6. Redistributions of any form whatsoever must retain the following
36 | * acknowledgment:
37 | * "This product includes software developed by the OpenSSL Project
38 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
39 | *
40 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
41 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
43 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
44 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
49 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
50 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
51 | * OF THE POSSIBILITY OF SUCH DAMAGE.
52 | * ====================================================================
53 | *
54 | * This product includes cryptographic software written by Eric Young
55 | * (eay@cryptsoft.com). This product includes software written by Tim
56 | * Hudson (tjh@cryptsoft.com).
57 | *
58 | */
59 |
60 | #ifndef HEADER_PQUEUE_H
61 | #define HEADER_PQUEUE_H
62 |
63 | #include
64 | #include
65 | #include
66 |
67 | typedef struct _pqueue *pqueue;
68 |
69 | typedef struct _pitem
70 | {
71 | unsigned char priority[8]; /* 64-bit value in big-endian encoding */
72 | void *data;
73 | struct _pitem *next;
74 | } pitem;
75 |
76 | typedef struct _pitem *piterator;
77 |
78 | pitem *pitem_new(unsigned char *prio64be, void *data);
79 | void pitem_free(pitem *item);
80 |
81 | pqueue pqueue_new(void);
82 | void pqueue_free(pqueue pq);
83 |
84 | pitem *pqueue_insert(pqueue pq, pitem *item);
85 | pitem *pqueue_peek(pqueue pq);
86 | pitem *pqueue_pop(pqueue pq);
87 | pitem *pqueue_find(pqueue pq, unsigned char *prio64be);
88 | pitem *pqueue_iterator(pqueue pq);
89 | pitem *pqueue_next(piterator *iter);
90 |
91 | void pqueue_print(pqueue pq);
92 | int pqueue_size(pqueue pq);
93 |
94 | #endif /* ! HEADER_PQUEUE_H */
95 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/rand.h:
--------------------------------------------------------------------------------
1 | /* crypto/rand/rand.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_RAND_H
60 | #define HEADER_RAND_H
61 |
62 | #include
63 | #include
64 | #include
65 |
66 | #if defined(OPENSSL_SYS_WINDOWS)
67 | #include
68 | #endif
69 |
70 | #ifdef __cplusplus
71 | extern "C" {
72 | #endif
73 |
74 | #if defined(OPENSSL_FIPS)
75 | #define FIPS_RAND_SIZE_T size_t
76 | #endif
77 |
78 | /* Already defined in ossl_typ.h */
79 | /* typedef struct rand_meth_st RAND_METHOD; */
80 |
81 | struct rand_meth_st
82 | {
83 | void (*seed)(const void *buf, int num);
84 | int (*bytes)(unsigned char *buf, int num);
85 | void (*cleanup)(void);
86 | void (*add)(const void *buf, int num, double entropy);
87 | int (*pseudorand)(unsigned char *buf, int num);
88 | int (*status)(void);
89 | };
90 |
91 | #ifdef BN_DEBUG
92 | extern int rand_predictable;
93 | #endif
94 |
95 | int RAND_set_rand_method(const RAND_METHOD *meth);
96 | const RAND_METHOD *RAND_get_rand_method(void);
97 | #ifndef OPENSSL_NO_ENGINE
98 | int RAND_set_rand_engine(ENGINE *engine);
99 | #endif
100 | RAND_METHOD *RAND_SSLeay(void);
101 | void RAND_cleanup(void );
102 | int RAND_bytes(unsigned char *buf,int num);
103 | int RAND_pseudo_bytes(unsigned char *buf,int num);
104 | void RAND_seed(const void *buf,int num);
105 | void RAND_add(const void *buf,int num,double entropy);
106 | int RAND_load_file(const char *file,long max_bytes);
107 | int RAND_write_file(const char *file);
108 | const char *RAND_file_name(char *file,size_t num);
109 | int RAND_status(void);
110 | int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes);
111 | int RAND_egd(const char *path);
112 | int RAND_egd_bytes(const char *path,int bytes);
113 | int RAND_poll(void);
114 |
115 | #if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
116 |
117 | void RAND_screen(void);
118 | int RAND_event(UINT, WPARAM, LPARAM);
119 |
120 | #endif
121 |
122 | #ifdef OPENSSL_FIPS
123 | void RAND_set_fips_drbg_type(int type, int flags);
124 | int RAND_init_fips(void);
125 | #endif
126 |
127 | /* BEGIN ERROR CODES */
128 | /* The following lines are auto generated by the script mkerr.pl. Any changes
129 | * made after this point may be overwritten when the script is next run.
130 | */
131 | void ERR_load_RAND_strings(void);
132 |
133 | /* Error codes for the RAND functions. */
134 |
135 | /* Function codes. */
136 | #define RAND_F_RAND_GET_RAND_METHOD 101
137 | #define RAND_F_RAND_INIT_FIPS 102
138 | #define RAND_F_SSLEAY_RAND_BYTES 100
139 |
140 | /* Reason codes. */
141 | #define RAND_R_DUAL_EC_DRBG_DISABLED 104
142 | #define RAND_R_ERROR_INITIALISING_DRBG 102
143 | #define RAND_R_ERROR_INSTANTIATING_DRBG 103
144 | #define RAND_R_NO_FIPS_RANDOM_METHOD_SET 101
145 | #define RAND_R_PRNG_NOT_SEEDED 100
146 |
147 | #ifdef __cplusplus
148 | }
149 | #endif
150 | #endif
151 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/rc2.h:
--------------------------------------------------------------------------------
1 | /* crypto/rc2/rc2.h */
2 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_RC2_H
60 | #define HEADER_RC2_H
61 |
62 | #include /* OPENSSL_NO_RC2, RC2_INT */
63 | #ifdef OPENSSL_NO_RC2
64 | #error RC2 is disabled.
65 | #endif
66 |
67 | #define RC2_ENCRYPT 1
68 | #define RC2_DECRYPT 0
69 |
70 | #define RC2_BLOCK 8
71 | #define RC2_KEY_LENGTH 16
72 |
73 | #ifdef __cplusplus
74 | extern "C" {
75 | #endif
76 |
77 | typedef struct rc2_key_st
78 | {
79 | RC2_INT data[64];
80 | } RC2_KEY;
81 |
82 | #ifdef OPENSSL_FIPS
83 | void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,int bits);
84 | #endif
85 | void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,int bits);
86 | void RC2_ecb_encrypt(const unsigned char *in,unsigned char *out,RC2_KEY *key,
87 | int enc);
88 | void RC2_encrypt(unsigned long *data,RC2_KEY *key);
89 | void RC2_decrypt(unsigned long *data,RC2_KEY *key);
90 | void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
91 | RC2_KEY *ks, unsigned char *iv, int enc);
92 | void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out,
93 | long length, RC2_KEY *schedule, unsigned char *ivec,
94 | int *num, int enc);
95 | void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out,
96 | long length, RC2_KEY *schedule, unsigned char *ivec,
97 | int *num);
98 |
99 | #ifdef __cplusplus
100 | }
101 | #endif
102 |
103 | #endif
104 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/rc4.h:
--------------------------------------------------------------------------------
1 | /* crypto/rc4/rc4.h */
2 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_RC4_H
60 | #define HEADER_RC4_H
61 |
62 | #include /* OPENSSL_NO_RC4, RC4_INT */
63 | #ifdef OPENSSL_NO_RC4
64 | #error RC4 is disabled.
65 | #endif
66 |
67 | #include
68 |
69 | #ifdef __cplusplus
70 | extern "C" {
71 | #endif
72 |
73 | typedef struct rc4_key_st
74 | {
75 | RC4_INT x,y;
76 | RC4_INT data[256];
77 | } RC4_KEY;
78 |
79 |
80 | const char *RC4_options(void);
81 | void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
82 | void private_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
83 | void RC4(RC4_KEY *key, size_t len, const unsigned char *indata,
84 | unsigned char *outdata);
85 |
86 | #ifdef __cplusplus
87 | }
88 | #endif
89 |
90 | #endif
91 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/ripemd.h:
--------------------------------------------------------------------------------
1 | /* crypto/ripemd/ripemd.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_RIPEMD_H
60 | #define HEADER_RIPEMD_H
61 |
62 | #include
63 | #include
64 |
65 | #ifdef __cplusplus
66 | extern "C" {
67 | #endif
68 |
69 | #ifdef OPENSSL_NO_RIPEMD
70 | #error RIPEMD is disabled.
71 | #endif
72 |
73 | #if defined(__LP32__)
74 | #define RIPEMD160_LONG unsigned long
75 | #elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
76 | #define RIPEMD160_LONG unsigned long
77 | #define RIPEMD160_LONG_LOG2 3
78 | #else
79 | #define RIPEMD160_LONG unsigned int
80 | #endif
81 |
82 | #define RIPEMD160_CBLOCK 64
83 | #define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4)
84 | #define RIPEMD160_DIGEST_LENGTH 20
85 |
86 | typedef struct RIPEMD160state_st
87 | {
88 | RIPEMD160_LONG A,B,C,D,E;
89 | RIPEMD160_LONG Nl,Nh;
90 | RIPEMD160_LONG data[RIPEMD160_LBLOCK];
91 | unsigned int num;
92 | } RIPEMD160_CTX;
93 |
94 | #ifdef OPENSSL_FIPS
95 | int private_RIPEMD160_Init(RIPEMD160_CTX *c);
96 | #endif
97 | int RIPEMD160_Init(RIPEMD160_CTX *c);
98 | int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len);
99 | int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c);
100 | unsigned char *RIPEMD160(const unsigned char *d, size_t n,
101 | unsigned char *md);
102 | void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b);
103 | #ifdef __cplusplus
104 | }
105 | #endif
106 |
107 | #endif
108 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/seed.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions
6 | * are met:
7 | * 1. Redistributions of source code must retain the above copyright
8 | * notice, this list of conditions and the following disclaimer.
9 | * 2. Neither the name of author nor the names of its contributors may
10 | * be used to endorse or promote products derived from this software
11 | * without specific prior written permission.
12 | *
13 | * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 | * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
17 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 | * SUCH DAMAGE.
24 | *
25 | */
26 | /* ====================================================================
27 | * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
28 | *
29 | * Redistribution and use in source and binary forms, with or without
30 | * modification, are permitted provided that the following conditions
31 | * are met:
32 | *
33 | * 1. Redistributions of source code must retain the above copyright
34 | * notice, this list of conditions and the following disclaimer.
35 | *
36 | * 2. Redistributions in binary form must reproduce the above copyright
37 | * notice, this list of conditions and the following disclaimer in
38 | * the documentation and/or other materials provided with the
39 | * distribution.
40 | *
41 | * 3. All advertising materials mentioning features or use of this
42 | * software must display the following acknowledgment:
43 | * "This product includes software developed by the OpenSSL Project
44 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
45 | *
46 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
47 | * endorse or promote products derived from this software without
48 | * prior written permission. For written permission, please contact
49 | * openssl-core@openssl.org.
50 | *
51 | * 5. Products derived from this software may not be called "OpenSSL"
52 | * nor may "OpenSSL" appear in their names without prior written
53 | * permission of the OpenSSL Project.
54 | *
55 | * 6. Redistributions of any form whatsoever must retain the following
56 | * acknowledgment:
57 | * "This product includes software developed by the OpenSSL Project
58 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
59 | *
60 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
61 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
62 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
63 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
64 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
65 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
66 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
67 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
68 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
69 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
70 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
71 | * OF THE POSSIBILITY OF SUCH DAMAGE.
72 | * ====================================================================
73 | *
74 | * This product includes cryptographic software written by Eric Young
75 | * (eay@cryptsoft.com). This product includes software written by Tim
76 | * Hudson (tjh@cryptsoft.com).
77 | *
78 | */
79 |
80 |
81 | #ifndef HEADER_SEED_H
82 | #define HEADER_SEED_H
83 |
84 | #include
85 | #include
86 | #include
87 |
88 | #ifdef OPENSSL_NO_SEED
89 | #error SEED is disabled.
90 | #endif
91 |
92 | #ifdef AES_LONG /* look whether we need 'long' to get 32 bits */
93 | # ifndef SEED_LONG
94 | # define SEED_LONG 1
95 | # endif
96 | #endif
97 |
98 | #if !defined(NO_SYS_TYPES_H)
99 | # include
100 | #endif
101 |
102 | #define SEED_BLOCK_SIZE 16
103 | #define SEED_KEY_LENGTH 16
104 |
105 |
106 | #ifdef __cplusplus
107 | extern "C" {
108 | #endif
109 |
110 |
111 | typedef struct seed_key_st {
112 | #ifdef SEED_LONG
113 | unsigned long data[32];
114 | #else
115 | unsigned int data[32];
116 | #endif
117 | } SEED_KEY_SCHEDULE;
118 |
119 | #ifdef OPENSSL_FIPS
120 | void private_SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], SEED_KEY_SCHEDULE *ks);
121 | #endif
122 | void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], SEED_KEY_SCHEDULE *ks);
123 |
124 | void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], unsigned char d[SEED_BLOCK_SIZE], const SEED_KEY_SCHEDULE *ks);
125 | void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], unsigned char d[SEED_BLOCK_SIZE], const SEED_KEY_SCHEDULE *ks);
126 |
127 | void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, const SEED_KEY_SCHEDULE *ks, int enc);
128 | void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out,
129 | size_t len, const SEED_KEY_SCHEDULE *ks, unsigned char ivec[SEED_BLOCK_SIZE], int enc);
130 | void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out,
131 | size_t len, const SEED_KEY_SCHEDULE *ks, unsigned char ivec[SEED_BLOCK_SIZE], int *num, int enc);
132 | void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out,
133 | size_t len, const SEED_KEY_SCHEDULE *ks, unsigned char ivec[SEED_BLOCK_SIZE], int *num);
134 |
135 | #ifdef __cplusplus
136 | }
137 | #endif
138 |
139 | #endif /* HEADER_SEED_H */
140 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/srp.h:
--------------------------------------------------------------------------------
1 | /* crypto/srp/srp.h */
2 | /* Written by Christophe Renou (christophe.renou@edelweb.fr) with
3 | * the precious help of Peter Sylvester (peter.sylvester@edelweb.fr)
4 | * for the EdelKey project and contributed to the OpenSSL project 2004.
5 | */
6 | /* ====================================================================
7 | * Copyright (c) 2004 The OpenSSL Project. All rights reserved.
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * 1. Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | *
16 | * 2. Redistributions in binary form must reproduce the above copyright
17 | * notice, this list of conditions and the following disclaimer in
18 | * the documentation and/or other materials provided with the
19 | * distribution.
20 | *
21 | * 3. All advertising materials mentioning features or use of this
22 | * software must display the following acknowledgment:
23 | * "This product includes software developed by the OpenSSL Project
24 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
25 | *
26 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
27 | * endorse or promote products derived from this software without
28 | * prior written permission. For written permission, please contact
29 | * licensing@OpenSSL.org.
30 | *
31 | * 5. Products derived from this software may not be called "OpenSSL"
32 | * nor may "OpenSSL" appear in their names without prior written
33 | * permission of the OpenSSL Project.
34 | *
35 | * 6. Redistributions of any form whatsoever must retain the following
36 | * acknowledgment:
37 | * "This product includes software developed by the OpenSSL Project
38 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
39 | *
40 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
41 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
43 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
44 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
49 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
50 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
51 | * OF THE POSSIBILITY OF SUCH DAMAGE.
52 | * ====================================================================
53 | *
54 | * This product includes cryptographic software written by Eric Young
55 | * (eay@cryptsoft.com). This product includes software written by Tim
56 | * Hudson (tjh@cryptsoft.com).
57 | *
58 | */
59 | #ifndef __SRP_H__
60 | #define __SRP_H__
61 |
62 | #ifndef OPENSSL_NO_SRP
63 |
64 | #include
65 | #include
66 |
67 | #ifdef __cplusplus
68 | extern "C" {
69 | #endif
70 |
71 | #include
72 | #include
73 | #include
74 |
75 | typedef struct SRP_gN_cache_st
76 | {
77 | char *b64_bn;
78 | BIGNUM *bn;
79 | } SRP_gN_cache;
80 |
81 |
82 | DECLARE_STACK_OF(SRP_gN_cache)
83 |
84 | typedef struct SRP_user_pwd_st
85 | {
86 | char *id;
87 | BIGNUM *s;
88 | BIGNUM *v;
89 | const BIGNUM *g;
90 | const BIGNUM *N;
91 | char *info;
92 | } SRP_user_pwd;
93 |
94 | DECLARE_STACK_OF(SRP_user_pwd)
95 |
96 | typedef struct SRP_VBASE_st
97 | {
98 | STACK_OF(SRP_user_pwd) *users_pwd;
99 | STACK_OF(SRP_gN_cache) *gN_cache;
100 | /* to simulate a user */
101 | char *seed_key;
102 | BIGNUM *default_g;
103 | BIGNUM *default_N;
104 | } SRP_VBASE;
105 |
106 |
107 | /*Structure interne pour retenir les couples N et g*/
108 | typedef struct SRP_gN_st
109 | {
110 | char *id;
111 | BIGNUM *g;
112 | BIGNUM *N;
113 | } SRP_gN;
114 |
115 | DECLARE_STACK_OF(SRP_gN)
116 |
117 | SRP_VBASE *SRP_VBASE_new(char *seed_key);
118 | int SRP_VBASE_free(SRP_VBASE *vb);
119 | int SRP_VBASE_init(SRP_VBASE *vb, char * verifier_file);
120 | SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username);
121 | char *SRP_create_verifier(const char *user, const char *pass, char **salt,
122 | char **verifier, const char *N, const char *g);
123 | int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, BIGNUM **verifier, BIGNUM *N, BIGNUM *g);
124 |
125 |
126 | #define SRP_NO_ERROR 0
127 | #define SRP_ERR_VBASE_INCOMPLETE_FILE 1
128 | #define SRP_ERR_VBASE_BN_LIB 2
129 | #define SRP_ERR_OPEN_FILE 3
130 | #define SRP_ERR_MEMORY 4
131 |
132 | #define DB_srptype 0
133 | #define DB_srpverifier 1
134 | #define DB_srpsalt 2
135 | #define DB_srpid 3
136 | #define DB_srpgN 4
137 | #define DB_srpinfo 5
138 | #undef DB_NUMBER
139 | #define DB_NUMBER 6
140 |
141 | #define DB_SRP_INDEX 'I'
142 | #define DB_SRP_VALID 'V'
143 | #define DB_SRP_REVOKED 'R'
144 | #define DB_SRP_MODIF 'v'
145 |
146 |
147 | /* see srp.c */
148 | char * SRP_check_known_gN_param(BIGNUM* g, BIGNUM* N);
149 | SRP_gN *SRP_get_default_gN(const char * id) ;
150 |
151 | /* server side .... */
152 | BIGNUM *SRP_Calc_server_key(BIGNUM *A, BIGNUM *v, BIGNUM *u, BIGNUM *b, BIGNUM *N);
153 | BIGNUM *SRP_Calc_B(BIGNUM *b, BIGNUM *N, BIGNUM *g, BIGNUM *v);
154 | int SRP_Verify_A_mod_N(BIGNUM *A, BIGNUM *N);
155 | BIGNUM *SRP_Calc_u(BIGNUM *A, BIGNUM *B, BIGNUM *N) ;
156 |
157 |
158 |
159 | /* client side .... */
160 | BIGNUM *SRP_Calc_x(BIGNUM *s, const char *user, const char *pass);
161 | BIGNUM *SRP_Calc_A(BIGNUM *a, BIGNUM *N, BIGNUM *g);
162 | BIGNUM *SRP_Calc_client_key(BIGNUM *N, BIGNUM *B, BIGNUM *g, BIGNUM *x, BIGNUM *a, BIGNUM *u);
163 | int SRP_Verify_B_mod_N(BIGNUM *B, BIGNUM *N);
164 |
165 | #define SRP_MINIMAL_N 1024
166 |
167 | #ifdef __cplusplus
168 | }
169 | #endif
170 |
171 | #endif
172 | #endif
173 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/srtp.h:
--------------------------------------------------------------------------------
1 | /* ssl/tls1.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 | /* ====================================================================
59 | * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved.
60 | *
61 | * Redistribution and use in source and binary forms, with or without
62 | * modification, are permitted provided that the following conditions
63 | * are met:
64 | *
65 | * 1. Redistributions of source code must retain the above copyright
66 | * notice, this list of conditions and the following disclaimer.
67 | *
68 | * 2. Redistributions in binary form must reproduce the above copyright
69 | * notice, this list of conditions and the following disclaimer in
70 | * the documentation and/or other materials provided with the
71 | * distribution.
72 | *
73 | * 3. All advertising materials mentioning features or use of this
74 | * software must display the following acknowledgment:
75 | * "This product includes software developed by the OpenSSL Project
76 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
77 | *
78 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
79 | * endorse or promote products derived from this software without
80 | * prior written permission. For written permission, please contact
81 | * openssl-core@openssl.org.
82 | *
83 | * 5. Products derived from this software may not be called "OpenSSL"
84 | * nor may "OpenSSL" appear in their names without prior written
85 | * permission of the OpenSSL Project.
86 | *
87 | * 6. Redistributions of any form whatsoever must retain the following
88 | * acknowledgment:
89 | * "This product includes software developed by the OpenSSL Project
90 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
91 | *
92 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
93 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
94 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
95 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
96 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
97 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
98 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
99 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
100 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
101 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
102 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
103 | * OF THE POSSIBILITY OF SUCH DAMAGE.
104 | * ====================================================================
105 | *
106 | * This product includes cryptographic software written by Eric Young
107 | * (eay@cryptsoft.com). This product includes software written by Tim
108 | * Hudson (tjh@cryptsoft.com).
109 | *
110 | */
111 | /*
112 | DTLS code by Eric Rescorla
113 |
114 | Copyright (C) 2006, Network Resonance, Inc.
115 | Copyright (C) 2011, RTFM, Inc.
116 | */
117 |
118 | #ifndef HEADER_D1_SRTP_H
119 | #define HEADER_D1_SRTP_H
120 |
121 | #ifdef __cplusplus
122 | extern "C" {
123 | #endif
124 |
125 |
126 | #define SRTP_AES128_CM_SHA1_80 0x0001
127 | #define SRTP_AES128_CM_SHA1_32 0x0002
128 | #define SRTP_AES128_F8_SHA1_80 0x0003
129 | #define SRTP_AES128_F8_SHA1_32 0x0004
130 | #define SRTP_NULL_SHA1_80 0x0005
131 | #define SRTP_NULL_SHA1_32 0x0006
132 |
133 | int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles);
134 | int SSL_set_tlsext_use_srtp(SSL *ctx, const char *profiles);
135 | SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s);
136 |
137 | STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl);
138 | SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s);
139 |
140 | #ifdef __cplusplus
141 | }
142 | #endif
143 |
144 | #endif
145 |
146 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/ssl23.h:
--------------------------------------------------------------------------------
1 | /* ssl/ssl23.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_SSL23_H
60 | #define HEADER_SSL23_H
61 |
62 | #ifdef __cplusplus
63 | extern "C" {
64 | #endif
65 |
66 | /*client */
67 | /* write to server */
68 | #define SSL23_ST_CW_CLNT_HELLO_A (0x210|SSL_ST_CONNECT)
69 | #define SSL23_ST_CW_CLNT_HELLO_B (0x211|SSL_ST_CONNECT)
70 | /* read from server */
71 | #define SSL23_ST_CR_SRVR_HELLO_A (0x220|SSL_ST_CONNECT)
72 | #define SSL23_ST_CR_SRVR_HELLO_B (0x221|SSL_ST_CONNECT)
73 |
74 | /* server */
75 | /* read from client */
76 | #define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT)
77 | #define SSL23_ST_SR_CLNT_HELLO_B (0x211|SSL_ST_ACCEPT)
78 |
79 | #ifdef __cplusplus
80 | }
81 | #endif
82 | #endif
83 |
84 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/stack.h:
--------------------------------------------------------------------------------
1 | /* crypto/stack/stack.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_STACK_H
60 | #define HEADER_STACK_H
61 |
62 | #ifdef __cplusplus
63 | extern "C" {
64 | #endif
65 |
66 | typedef struct stack_st
67 | {
68 | int num;
69 | char **data;
70 | int sorted;
71 |
72 | int num_alloc;
73 | int (*comp)(const void *, const void *);
74 | } _STACK; /* Use STACK_OF(...) instead */
75 |
76 | #define M_sk_num(sk) ((sk) ? (sk)->num:-1)
77 | #define M_sk_value(sk,n) ((sk) ? (sk)->data[n] : NULL)
78 |
79 | int sk_num(const _STACK *);
80 | void *sk_value(const _STACK *, int);
81 |
82 | void *sk_set(_STACK *, int, void *);
83 |
84 | _STACK *sk_new(int (*cmp)(const void *, const void *));
85 | _STACK *sk_new_null(void);
86 | void sk_free(_STACK *);
87 | void sk_pop_free(_STACK *st, void (*func)(void *));
88 | int sk_insert(_STACK *sk, void *data, int where);
89 | void *sk_delete(_STACK *st, int loc);
90 | void *sk_delete_ptr(_STACK *st, void *p);
91 | int sk_find(_STACK *st, void *data);
92 | int sk_find_ex(_STACK *st, void *data);
93 | int sk_push(_STACK *st, void *data);
94 | int sk_unshift(_STACK *st, void *data);
95 | void *sk_shift(_STACK *st);
96 | void *sk_pop(_STACK *st);
97 | void sk_zero(_STACK *st);
98 | int (*sk_set_cmp_func(_STACK *sk, int (*c)(const void *, const void *)))
99 | (const void *, const void *);
100 | _STACK *sk_dup(_STACK *st);
101 | void sk_sort(_STACK *st);
102 | int sk_is_sorted(const _STACK *st);
103 |
104 | #ifdef __cplusplus
105 | }
106 | #endif
107 |
108 | #endif
109 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/txt_db.h:
--------------------------------------------------------------------------------
1 | /* crypto/txt_db/txt_db.h */
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 | * All rights reserved.
4 | *
5 | * This package is an SSL implementation written
6 | * by Eric Young (eay@cryptsoft.com).
7 | * The implementation was written so as to conform with Netscapes SSL.
8 | *
9 | * This library is free for commercial and non-commercial use as long as
10 | * the following conditions are aheared to. The following conditions
11 | * apply to all code found in this distribution, be it the RC4, RSA,
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 | * included with this distribution is covered by the same copyright terms
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 | *
16 | * Copyright remains Eric Young's, and as such any Copyright notices in
17 | * the code are not to be removed.
18 | * If this package is used in a product, Eric Young should be given attribution
19 | * as the author of the parts of the library used.
20 | * This can be in the form of a textual message at program startup or
21 | * in documentation (online or textual) provided with the package.
22 | *
23 | * Redistribution and use in source and binary forms, with or without
24 | * modification, are permitted provided that the following conditions
25 | * are met:
26 | * 1. Redistributions of source code must retain the copyright
27 | * notice, this list of conditions and the following disclaimer.
28 | * 2. Redistributions in binary form must reproduce the above copyright
29 | * notice, this list of conditions and the following disclaimer in the
30 | * documentation and/or other materials provided with the distribution.
31 | * 3. All advertising materials mentioning features or use of this software
32 | * must display the following acknowledgement:
33 | * "This product includes cryptographic software written by
34 | * Eric Young (eay@cryptsoft.com)"
35 | * The word 'cryptographic' can be left out if the rouines from the library
36 | * being used are not cryptographic related :-).
37 | * 4. If you include any Windows specific code (or a derivative thereof) from
38 | * the apps directory (application code) you must include an acknowledgement:
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 | *
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 | * SUCH DAMAGE.
52 | *
53 | * The licence and distribution terms for any publically available version or
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be
55 | * copied and put under another distribution licence
56 | * [including the GNU Public Licence.]
57 | */
58 |
59 | #ifndef HEADER_TXT_DB_H
60 | #define HEADER_TXT_DB_H
61 |
62 | #include
63 | #ifndef OPENSSL_NO_BIO
64 | #include
65 | #endif
66 | #include
67 | #include
68 |
69 | #define DB_ERROR_OK 0
70 | #define DB_ERROR_MALLOC 1
71 | #define DB_ERROR_INDEX_CLASH 2
72 | #define DB_ERROR_INDEX_OUT_OF_RANGE 3
73 | #define DB_ERROR_NO_INDEX 4
74 | #define DB_ERROR_INSERT_INDEX_CLASH 5
75 |
76 | #ifdef __cplusplus
77 | extern "C" {
78 | #endif
79 |
80 | typedef OPENSSL_STRING *OPENSSL_PSTRING;
81 | DECLARE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING)
82 |
83 | typedef struct txt_db_st
84 | {
85 | int num_fields;
86 | STACK_OF(OPENSSL_PSTRING) *data;
87 | LHASH_OF(OPENSSL_STRING) **index;
88 | int (**qual)(OPENSSL_STRING *);
89 | long error;
90 | long arg1;
91 | long arg2;
92 | OPENSSL_STRING *arg_row;
93 | } TXT_DB;
94 |
95 | #ifndef OPENSSL_NO_BIO
96 | TXT_DB *TXT_DB_read(BIO *in, int num);
97 | long TXT_DB_write(BIO *out, TXT_DB *db);
98 | #else
99 | TXT_DB *TXT_DB_read(char *in, int num);
100 | long TXT_DB_write(char *out, TXT_DB *db);
101 | #endif
102 | int TXT_DB_create_index(TXT_DB *db,int field,int (*qual)(OPENSSL_STRING *),
103 | LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp);
104 | void TXT_DB_free(TXT_DB *db);
105 | OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, OPENSSL_STRING *value);
106 | int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value);
107 |
108 | #ifdef __cplusplus
109 | }
110 | #endif
111 |
112 | #endif
113 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/ui_compat.h:
--------------------------------------------------------------------------------
1 | /* crypto/ui/ui.h -*- mode:C; c-file-style: "eay" -*- */
2 | /* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
3 | * project 2001.
4 | */
5 | /* ====================================================================
6 | * Copyright (c) 2001 The OpenSSL Project. All rights reserved.
7 | *
8 | * Redistribution and use in source and binary forms, with or without
9 | * modification, are permitted provided that the following conditions
10 | * are met:
11 | *
12 | * 1. Redistributions of source code must retain the above copyright
13 | * notice, this list of conditions and the following disclaimer.
14 | *
15 | * 2. Redistributions in binary form must reproduce the above copyright
16 | * notice, this list of conditions and the following disclaimer in
17 | * the documentation and/or other materials provided with the
18 | * distribution.
19 | *
20 | * 3. All advertising materials mentioning features or use of this
21 | * software must display the following acknowledgment:
22 | * "This product includes software developed by the OpenSSL Project
23 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
24 | *
25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26 | * endorse or promote products derived from this software without
27 | * prior written permission. For written permission, please contact
28 | * openssl-core@openssl.org.
29 | *
30 | * 5. Products derived from this software may not be called "OpenSSL"
31 | * nor may "OpenSSL" appear in their names without prior written
32 | * permission of the OpenSSL Project.
33 | *
34 | * 6. Redistributions of any form whatsoever must retain the following
35 | * acknowledgment:
36 | * "This product includes software developed by the OpenSSL Project
37 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
38 | *
39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50 | * OF THE POSSIBILITY OF SUCH DAMAGE.
51 | * ====================================================================
52 | *
53 | * This product includes cryptographic software written by Eric Young
54 | * (eay@cryptsoft.com). This product includes software written by Tim
55 | * Hudson (tjh@cryptsoft.com).
56 | *
57 | */
58 |
59 | #ifndef HEADER_UI_COMPAT_H
60 | #define HEADER_UI_COMPAT_H
61 |
62 | #include
63 | #include
64 |
65 | #ifdef __cplusplus
66 | extern "C" {
67 | #endif
68 |
69 | /* The following functions were previously part of the DES section,
70 | and are provided here for backward compatibility reasons. */
71 |
72 | #define des_read_pw_string(b,l,p,v) \
73 | _ossl_old_des_read_pw_string((b),(l),(p),(v))
74 | #define des_read_pw(b,bf,s,p,v) \
75 | _ossl_old_des_read_pw((b),(bf),(s),(p),(v))
76 |
77 | int _ossl_old_des_read_pw_string(char *buf,int length,const char *prompt,int verify);
78 | int _ossl_old_des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify);
79 |
80 | #ifdef __cplusplus
81 | }
82 | #endif
83 | #endif
84 |
--------------------------------------------------------------------------------
/src/ios/alipayUtil/openssl/whrlpool.h:
--------------------------------------------------------------------------------
1 | #ifndef HEADER_WHRLPOOL_H
2 | #define HEADER_WHRLPOOL_H
3 |
4 | #include
5 | #include
6 |
7 | #ifdef __cplusplus
8 | extern "C" {
9 | #endif
10 |
11 | #define WHIRLPOOL_DIGEST_LENGTH (512/8)
12 | #define WHIRLPOOL_BBLOCK 512
13 | #define WHIRLPOOL_COUNTER (256/8)
14 |
15 | typedef struct {
16 | union {
17 | unsigned char c[WHIRLPOOL_DIGEST_LENGTH];
18 | /* double q is here to ensure 64-bit alignment */
19 | double q[WHIRLPOOL_DIGEST_LENGTH/sizeof(double)];
20 | } H;
21 | unsigned char data[WHIRLPOOL_BBLOCK/8];
22 | unsigned int bitoff;
23 | size_t bitlen[WHIRLPOOL_COUNTER/sizeof(size_t)];
24 | } WHIRLPOOL_CTX;
25 |
26 | #ifndef OPENSSL_NO_WHIRLPOOL
27 | #ifdef OPENSSL_FIPS
28 | int private_WHIRLPOOL_Init(WHIRLPOOL_CTX *c);
29 | #endif
30 | int WHIRLPOOL_Init (WHIRLPOOL_CTX *c);
31 | int WHIRLPOOL_Update (WHIRLPOOL_CTX *c,const void *inp,size_t bytes);
32 | void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c,const void *inp,size_t bits);
33 | int WHIRLPOOL_Final (unsigned char *md,WHIRLPOOL_CTX *c);
34 | unsigned char *WHIRLPOOL(const void *inp,size_t bytes,unsigned char *md);
35 | #endif
36 |
37 | #ifdef __cplusplus
38 | }
39 | #endif
40 |
41 | #endif
42 |
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.bundle/bar@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/AlipaySDK.bundle/bar@2x.png
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.bundle/refresh@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/AlipaySDK.bundle/refresh@2x.png
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.bundle/refresh_click@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/AlipaySDK.bundle/refresh_click@2x.png
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.bundle/shutdown@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/AlipaySDK.bundle/shutdown@2x.png
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.bundle/shutdown_click@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/AlipaySDK.bundle/shutdown_click@2x.png
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.framework/AlipaySDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/AlipaySDK.framework/AlipaySDK
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.framework/Headers/APayAuthInfo.h:
--------------------------------------------------------------------------------
1 | //
2 | // APAuthInfo.h
3 | // AliSDKDemo
4 | //
5 | // Created by 方彬 on 14-7-18.
6 | // Copyright (c) 2014年 Alipay.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface APayAuthInfo : NSObject
12 |
13 | @property(nonatomic, copy)NSString *appID;
14 | @property(nonatomic, copy)NSString *pid;
15 | @property(nonatomic, copy)NSString *redirectUri;
16 |
17 | /**
18 | * 初始化AuthInfo
19 | *
20 | * @param appIDStr 应用ID
21 | * @param productIDStr 产品码 该商户在aboss签约的产品,用户获取pid获取的参数
22 | * @param pidStr 商户ID 可不填
23 | * @param uriStr 授权的应用回调地址 比如:alidemo://auth
24 | *
25 | * @return authinfo实例
26 | */
27 | - (id)initWithAppID:(NSString *)appIDStr
28 | pid:(NSString *)pidStr
29 | redirectUri:(NSString *)uriStr;
30 |
31 | - (NSString *)description;
32 | - (NSString *)wapDescription;
33 | @end
34 |
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.framework/Headers/AlipaySDK.h:
--------------------------------------------------------------------------------
1 | //
2 | // AlipaySDK.h
3 | // AlipaySDK
4 | //
5 | // Created by 方彬 on 14-4-28.
6 | // Copyright (c) 2014年 Alipay. All rights reserved.
7 | //
8 |
9 |
10 | ////////////////////////////////////////////////////////
11 | ////////////////version:2.1 motify:2014.12.24//////////
12 | ///////////////////Merry Christmas=。=//////////////////
13 | ////////////////////////////////////////////////////////
14 |
15 |
16 | #import "APayAuthInfo.h"
17 |
18 | typedef void(^CompletionBlock)(NSDictionary *resultDic);
19 |
20 | @interface AlipaySDK : NSObject
21 |
22 | /**
23 | * 创建支付单例服务
24 | *
25 | * @return 返回单例对象
26 | */
27 | + (AlipaySDK *)defaultService;
28 |
29 | /**
30 | * 支付接口
31 | *
32 | * @param orderStr 订单信息
33 | * @param schemeStr 调用支付的app注册在info.plist中的scheme
34 | * @param compltionBlock 支付结果回调Block
35 | */
36 | - (void)payOrder:(NSString *)orderStr
37 | fromScheme:(NSString *)schemeStr
38 | callback:(CompletionBlock)completionBlock;
39 |
40 | /**
41 | * 处理钱包或者独立快捷app支付跳回商户app携带的支付结果Url
42 | *
43 | * @param resultUrl 支付结果url,传入后由SDK解析,统一在上面的pay方法的callback中回调
44 | * @param completionBlock 跳钱包支付结果回调,保证跳转钱包支付过程中,即使调用方app被系统kill时,能通过这个回调取到支付结果。
45 | */
46 | - (void)processOrderWithPaymentResult:(NSURL *)resultUrl
47 | standbyCallback:(CompletionBlock)completionBlock;
48 |
49 | /**
50 | * 是否已经使用过
51 | *
52 | * @return YES为已经使用过,NO反之
53 | */
54 | - (BOOL)isLogined;
55 |
56 | /**
57 | * 当前版本号
58 | *
59 | * @return 当前版本字符串
60 | */
61 | - (NSString *)currentVersion;
62 |
63 | /**
64 | * 測試所用,realse包无效
65 | *
66 | * @param url 测试环境
67 | */
68 | - (void)setUrl:(NSString *)url;
69 |
70 |
71 | //////////////////////////////////////////////////////////////////////////////////////////////
72 | //////////////////////////授权1.0//////////////////////////////////////////////////////////////
73 | //////////////////////////////////////////////////////////////////////////////////////////////
74 |
75 | /**
76 | * 快登授权
77 | * @param authInfo 需授权信息
78 | * @param completionBlock 授权结果回调
79 | */
80 | - (void)authWithInfo:(APayAuthInfo *)authInfo
81 | callback:(CompletionBlock)completionBlock;
82 |
83 |
84 | /**
85 | * 处理授权信息Url
86 | *
87 | * @param resultUrl 钱包返回的授权结果url
88 | * @param completionBlock 跳授权结果回调,保证跳转钱包授权过程中,即使调用方app被系统kill时,能通过这个回调取到支付结果。
89 | */
90 | - (void)processAuthResult:(NSURL *)resultUrl
91 | standbyCallback:(CompletionBlock)completionBlock;
92 |
93 | //////////////////////////////////////////////////////////////////////////////////////////////
94 | //////////////////////////授权2.0//////////////////////////////////////////////////////////////
95 | //////////////////////////////////////////////////////////////////////////////////////////////
96 |
97 | /**
98 | * 快登授权2.0
99 | *
100 | * @param infoStr 授权请求信息字符串
101 | * @param schemeStr 调用授权的app注册在info.plist中的scheme
102 | * @param completionBlock 授权结果回调
103 | */
104 | - (void)auth_V2WithInfo:(NSString *)infoStr
105 | fromScheme:(NSString *)schemeStr
106 | callback:(CompletionBlock)completionBlock;
107 |
108 | /**
109 | * 处理授权信息Url
110 | *
111 | * @param resultUrl 钱包返回的授权结果url
112 | * @param completionBlock 跳授权结果回调,保证跳转钱包授权过程中,即使调用方app被系统kill时,能通过这个回调取到支付结果。
113 | */
114 | - (void)processAuth_V2Result:(NSURL *)resultUrl
115 | standbyCallback:(CompletionBlock)completionBlock;
116 |
117 | @end
118 |
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/AlipaySDK.framework/Info.plist
--------------------------------------------------------------------------------
/src/ios/libs/AlipaySDK.framework/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/AlipaySDK.framework/en.lproj/InfoPlist.strings
--------------------------------------------------------------------------------
/src/ios/libs/libcrypto.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/libcrypto.a
--------------------------------------------------------------------------------
/src/ios/libs/libssl.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chen4342024/cordova-plugin-alipay/f304fc142cc648ad5d7f608389af05437ffd9f64/src/ios/libs/libssl.a
--------------------------------------------------------------------------------
/www/AlipayPlugin.js:
--------------------------------------------------------------------------------
1 | var exec = require('cordova/exec');
2 |
3 |
4 | var Alipay = function() {};
5 |
6 | Alipay.prototype.alipay = function(out_trade_no, subject, bodtxt, total_fee, successCallback, errorCallback, callbackUrl) {
7 | if (errorCallback == null) {
8 | errorCallback = function() {}
9 | }
10 |
11 | if (typeof errorCallback != "function") {
12 | console.log("errorCallback failure: failure parameter not a function");
13 | return;
14 | }
15 |
16 | if (typeof successCallback != "function") {
17 | console.log("psuccessCallback failure: success callback parameter must be a function");
18 | return;
19 | }
20 |
21 | if (!callbackUrl) {
22 | errorCallback('参数错误!');
23 | return;
24 | }
25 | //{"out_trade_no":out_trade_no, "subject": subject,"bodtxt":bodtxt, "total_fee": total_fee, "callbackUrl": callbackUrl}
26 | exec(successCallback, errorCallback, 'AlipayPlugin', 'pay', [out_trade_no, subject, bodtxt, total_fee, callbackUrl]);
27 | };
28 |
29 | var alipay = new Alipay();
30 | module.exports = alipay;
31 |
32 |
33 |
34 | /***************************使用demo****************************/
35 | //cordova.plugins.AlipayPlugin.alipay();
36 |
37 | function testAlipay() {
38 | var subject = "测试的商品";
39 | var body = "该测试商品的详细描述";
40 | var price = "0.01";
41 | var out_trade_no = getOutTradeNo();
42 | var callbackUrl = "http://host:port/path/Alipay/notify_url.aspx";
43 | var successCallback = function(msg) {
44 | console.log("successCallback");
45 | if(typeof msg == "object"){
46 | console.log("success--->" + msg.memo);
47 | console.log("success--->" + msg.result);
48 | console.log("success--->" + msg.resultStatus);
49 | alert("success--->" + msg.resultStatus + " : "+msg.result + " : " + msg.memo);
50 | }else{
51 | alert("success--->" + msg);
52 |
53 | }
54 |
55 | };
56 |
57 |
58 | /**
59 | * 错误代码:
60 | * 9000 订单支付成功
61 | * 8000 正在处理中
62 | * 4000 订单支付失败
63 | * 6001 用户中途取消
64 | * 6002 网络连接出错
65 | */
66 | var errorCallback = function(msg) {
67 | console.log("errorCallback");
68 | alert("error--->" + msg);
69 | };
70 | cordova.plugins.AlipayPlugin.alipay(out_trade_no, subject, body, price, successCallback, errorCallback, callbackUrl);
71 | }
72 |
73 |
74 | function getOutTradeNo() {
75 | return "082215222612710";
76 | }
--------------------------------------------------------------------------------
/支付宝插件使用.txt:
--------------------------------------------------------------------------------
1 |
2 | 添加插件 cordova plugin add 插件目录路径
3 |
4 |
5 | 配置ios端:
6 |
7 | 1.启动IDE(如Xcode),plugin下 libs的库,并导入到项目工程中。
8 | AlipaySDK.bundle
9 | AlipaySDK.framework
10 | libcrypto.a
11 | libssl.a
12 |
13 | 2.将alipayUtil 文件夹放到plugin目录下,并在xcode中添加,记得选中group。即在xcode中显示为黄色文件夹
14 |
15 | 3.点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search”搜索,
16 | 对“Header Search Paths”增加头文件路径:$(SRCROOT)/项目名称,后面选择recursive 。
17 | 如果头文件信息已增加,可不必再增加。 (如果不添加,会报头文件找不到错误)
18 |
19 | 4.点击项目名称,点击“Build Phases”选项卡,在“Link Binary with Librarles”选项中,新增“AlipaySDK.framework”,“SystemConfiguration.framework”, security.framework 系统库文件。
20 | 如果项目中已有这几个库文件,可不必再增加。(如果不添加,会报link arm64 等错误)
21 |
22 | 5.配置url Scheme(点击项目名称,点击“Info”选项卡,在“URL Types”选项中,点击“+”,在“URL Schemes”中输入“XXXXXX”。“XXXXXX”来自于文件Keys.h) (用于支付结束后的回调),需于代码中的Keys.h 中 urlSceheme一样
23 |
24 | 6.appdelegate中添加
25 | if ([url.host isEqualToString:@"safepay"]) {
26 |
27 | [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
28 | NSLog(@"result = %@",resultDic);
29 | }];
30 | }
31 |
32 | 7.修改程序中
33 | PARTNER(合作身份者id)、
34 | SELLER(收款支付宝账号)、
35 | RSA_PRIVATE(商户私钥)**如何生成商户私钥请自行查看支付宝官方文档。**
36 |
37 | 配置Android端:
38 |
39 | 添加插件 cordova plugin add 插件目录路径
40 | 修改Keys 中的PARTNER SELLER RSA_PRIVATE
41 |
42 |
43 | 最后:
44 | 调用方法请参看插件目录下www/index.js 中的testAlipay方法
45 |
46 |
47 | 如果想删除插件,Android端的只需要运行cordova命令就可以了,ios端的除了运行cordova命令,还需要按照安装时的步奏,手动删除库、文件以及代码
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------