@appzung/react-native-code-push 8.3.2 → 10.0.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CodePush.js +22 -19
- package/CodePush.podspec +3 -3
- package/LICENSE.md +1 -1
- package/README.md +159 -296
- package/android/app/.gradle/config.properties +2 -0
- package/android/app/build.gradle +2 -0
- package/android/app/local.properties +8 -0
- package/android/app/src/main/AndroidManifest.xml +1 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePush.java +27 -21
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java +5 -5
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushConstants.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushDialog.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInstallMode.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidPublicKeyException.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidUpdateException.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushMalformedDataException.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushNativeModule.java +5 -5
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushNotInitializedException.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushTelemetryManager.java +14 -14
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUnknownException.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateManager.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateState.java +2 -2
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java +16 -9
- package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUtils.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/DownloadProgress.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/DownloadProgressCallback.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/FileUtils.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/ReactInstanceHolder.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/SettingsManager.java +1 -1
- package/android/app/src/main/java/com/microsoft/codepush/react/TLSSocketFactory.java +1 -1
- package/android/build.gradle +3 -0
- package/android/codepush.gradle +3 -3
- package/docs/advanced-usage.md +56 -0
- package/docs/api-android.md +12 -75
- package/docs/api-ios.md +5 -17
- package/docs/api-js.md +18 -55
- package/docs/setup-android.md +15 -397
- package/docs/setup-ios.md +24 -198
- package/docs/setup-windows.md +7 -74
- package/ios/CodePush/CodePush.h +4 -4
- package/ios/CodePush/CodePush.m +10 -9
- package/ios/CodePush/CodePushConfig.m +14 -11
- package/ios/CodePush/CodePushPackage.m +60 -60
- package/ios/CodePush/CodePushTelemetryManager.m +13 -13
- package/ios/CodePush.xcodeproj/project.pbxproj +24 -470
- package/ios/PrivacyInfo.xcprivacy +31 -0
- package/package.json +27 -24
- package/react-native.config.js +1 -1
- package/scripts/generateBundledResourcesHash.js +1 -1
- package/scripts/getFilesInFolder.js +1 -1
- package/scripts/recordFilesBeforeBundleCommand.js +1 -1
- package/typings/react-native-code-push.d.ts +22 -22
- package/windows/CodePush/CodePushConfig.cpp +3 -3
- package/windows/CodePush/CodePushConfig.h +3 -3
- package/windows/CodePush/CodePushNativeModule.cpp +27 -27
- package/windows/CodePush/CodePushNativeModule.h +4 -4
- package/windows/CodePush/CodePushTelemetryManager.cpp +12 -12
- package/windows/CodePush/CodePushTelemetryManager.h +1 -1
- package/.azurepipelines/build-rn-code-push-1es.yml +0 -104
- package/.azurepipelines/test-rn-code-push.yml +0 -94
- package/.config/CredScanSuppressions.json +0 -14
- package/SECURITY.md +0 -41
- package/docs/multi-deployment-testing-android.md +0 -148
- package/docs/multi-deployment-testing-ios.md +0 -59
- package/ios/CodePush/Base64/Base64/MF_Base64Additions.h +0 -34
- package/ios/CodePush/Base64/Base64/MF_Base64Additions.m +0 -252
- package/ios/CodePush/Base64/README.md +0 -47
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithm.h +0 -69
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.h +0 -16
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.m +0 -51
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.h +0 -15
- package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.m +0 -55
- package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.h +0 -24
- package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.m +0 -41
- package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.h +0 -28
- package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.m +0 -205
- package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.h +0 -103
- package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.m +0 -322
- package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.h +0 -37
- package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.m +0 -145
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.h +0 -35
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.m +0 -551
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTRSAlgorithm.h +0 -23
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.h +0 -43
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.m +0 -230
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.h +0 -31
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.m +0 -113
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.h +0 -38
- package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.m +0 -500
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.h +0 -18
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.m +0 -214
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.h +0 -23
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.m +0 -29
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.h +0 -19
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.m +0 -68
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.h +0 -18
- package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.m +0 -72
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.h +0 -67
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.m +0 -111
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.h +0 -119
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.m +0 -307
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.h +0 -94
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.m +0 -619
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.h +0 -164
- package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.m +0 -514
- package/ios/CodePush/JWT/Core/Coding/JWTCoding.h +0 -24
- package/ios/CodePush/JWT/Core/Coding/JWTCoding.m +0 -11
- package/ios/CodePush/JWT/Core/FrameworkSupplement/JWT.h +0 -52
- package/ios/CodePush/JWT/Core/FrameworkSupplement/Map.modulemap +0 -5
- package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.h +0 -28
- package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.m +0 -70
- package/ios/CodePush/JWT/Core/Supplement/JWTDeprecations.h +0 -22
- package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.h +0 -34
- package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.m +0 -73
- package/ios/CodePush/JWT/LICENSE +0 -19
- package/ios/CodePush/JWT/README.md +0 -489
- package/ios/CodePush/SSZipArchive/Common.h +0 -81
- package/ios/CodePush/SSZipArchive/README.md +0 -1
- package/ios/CodePush/SSZipArchive/SSZipArchive.h +0 -76
- package/ios/CodePush/SSZipArchive/SSZipArchive.m +0 -691
- package/ios/CodePush/SSZipArchive/aes/aes.h +0 -198
- package/ios/CodePush/SSZipArchive/aes/aes_via_ace.h +0 -541
- package/ios/CodePush/SSZipArchive/aes/aescrypt.c +0 -294
- package/ios/CodePush/SSZipArchive/aes/aeskey.c +0 -548
- package/ios/CodePush/SSZipArchive/aes/aesopt.h +0 -739
- package/ios/CodePush/SSZipArchive/aes/aestab.c +0 -391
- package/ios/CodePush/SSZipArchive/aes/aestab.h +0 -173
- package/ios/CodePush/SSZipArchive/aes/brg_endian.h +0 -126
- package/ios/CodePush/SSZipArchive/aes/brg_types.h +0 -219
- package/ios/CodePush/SSZipArchive/aes/entropy.c +0 -54
- package/ios/CodePush/SSZipArchive/aes/entropy.h +0 -16
- package/ios/CodePush/SSZipArchive/aes/fileenc.c +0 -144
- package/ios/CodePush/SSZipArchive/aes/fileenc.h +0 -121
- package/ios/CodePush/SSZipArchive/aes/hmac.c +0 -145
- package/ios/CodePush/SSZipArchive/aes/hmac.h +0 -103
- package/ios/CodePush/SSZipArchive/aes/prng.c +0 -155
- package/ios/CodePush/SSZipArchive/aes/prng.h +0 -82
- package/ios/CodePush/SSZipArchive/aes/pwd2key.c +0 -103
- package/ios/CodePush/SSZipArchive/aes/pwd2key.h +0 -57
- package/ios/CodePush/SSZipArchive/aes/sha1.c +0 -258
- package/ios/CodePush/SSZipArchive/aes/sha1.h +0 -73
- package/ios/CodePush/SSZipArchive/minizip/crypt.h +0 -130
- package/ios/CodePush/SSZipArchive/minizip/ioapi.c +0 -369
- package/ios/CodePush/SSZipArchive/minizip/ioapi.h +0 -175
- package/ios/CodePush/SSZipArchive/minizip/mztools.c +0 -284
- package/ios/CodePush/SSZipArchive/minizip/mztools.h +0 -31
- package/ios/CodePush/SSZipArchive/minizip/unzip.c +0 -1839
- package/ios/CodePush/SSZipArchive/minizip/unzip.h +0 -248
- package/ios/CodePush/SSZipArchive/minizip/zip.c +0 -1910
- package/ios/CodePush/SSZipArchive/minizip/zip.h +0 -202
- package/scripts/postlink/android/postlink.js +0 -87
- package/scripts/postlink/ios/postlink.js +0 -116
- package/scripts/postlink/run.js +0 -11
- package/scripts/postunlink/android/postunlink.js +0 -74
- package/scripts/postunlink/ios/postunlink.js +0 -87
- package/scripts/postunlink/run.js +0 -11
- package/scripts/tools/linkToolsAndroid.js +0 -57
- package/scripts/tools/linkToolsIos.js +0 -130
- package/windows-legacy/CodePush/CodePush.csproj +0 -128
- package/windows-legacy/CodePush/CodePushUtils.cs +0 -47
- package/windows-legacy/CodePush/FileUtils.cs +0 -40
- package/windows-legacy/CodePush/Properties/AssemblyInfo.cs +0 -29
- package/windows-legacy/CodePush/Properties/CodePush.rd.xml +0 -33
- package/windows-legacy/CodePush/UpdateManager.cs +0 -305
- package/windows-legacy/CodePush/UpdateUtils.cs +0 -46
- package/windows-legacy/CodePush.Net46/Adapters/Http/HttpProgress.cs +0 -28
- package/windows-legacy/CodePush.Net46/Adapters/Storage/ApplicationDataContainer.cs +0 -106
- package/windows-legacy/CodePush.Net46/CodePush.Net46.csproj +0 -103
- package/windows-legacy/CodePush.Net46/CodePushUtils.cs +0 -158
- package/windows-legacy/CodePush.Net46/FileUtils.cs +0 -55
- package/windows-legacy/CodePush.Net46/Properties/AssemblyInfo.cs +0 -36
- package/windows-legacy/CodePush.Net46/UpdateManager.cs +0 -330
- package/windows-legacy/CodePush.Net46/UpdateUtils.cs +0 -70
- package/windows-legacy/CodePush.Net46/packages.config +0 -5
- package/windows-legacy/CodePush.Net46.Test/ApplicationDataContainerTest.cs +0 -105
- package/windows-legacy/CodePush.Net46.Test/CodePush.Net46.Test.csproj +0 -137
- package/windows-legacy/CodePush.Net46.Test/Properties/AssemblyInfo.cs +0 -36
- package/windows-legacy/CodePush.Net46.Test/TelemetryManagerTest.cs +0 -117
- package/windows-legacy/CodePush.Net46.Test/app.config +0 -11
- package/windows-legacy/CodePush.Net46.Test/packages.config +0 -4
- package/windows-legacy/CodePush.Shared/CodePush.Shared.projitems +0 -22
- package/windows-legacy/CodePush.Shared/CodePush.Shared.shproj +0 -13
- package/windows-legacy/CodePush.Shared/CodePushConstants.cs +0 -35
- package/windows-legacy/CodePush.Shared/CodePushNativeModule.cs +0 -329
- package/windows-legacy/CodePush.Shared/CodePushReactPackage.cs +0 -235
- package/windows-legacy/CodePush.Shared/CodePushUtils.cs +0 -70
- package/windows-legacy/CodePush.Shared/InstallMode.cs +0 -9
- package/windows-legacy/CodePush.Shared/MinimumBackgroundListener.cs +0 -44
- package/windows-legacy/CodePush.Shared/SettingsManager.cs +0 -148
- package/windows-legacy/CodePush.Shared/TelemetryManager.cs +0 -250
- package/windows-legacy/CodePush.Shared/UpdateState.cs +0 -9
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
---------------------------------------------------------------------------
|
|
3
|
-
Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
|
|
4
|
-
|
|
5
|
-
The redistribution and use of this software (with or without changes)
|
|
6
|
-
is allowed without the payment of fees or royalties provided that:
|
|
7
|
-
|
|
8
|
-
source code distributions include the above copyright notice, this
|
|
9
|
-
list of conditions and the following disclaimer;
|
|
10
|
-
|
|
11
|
-
binary distributions include the above copyright notice, this list
|
|
12
|
-
of conditions and the following disclaimer in their documentation.
|
|
13
|
-
|
|
14
|
-
This software is provided 'as is' with no explicit or implied warranties
|
|
15
|
-
in respect of its operation, including, but not limited to, correctness
|
|
16
|
-
and fitness for purpose.
|
|
17
|
-
---------------------------------------------------------------------------
|
|
18
|
-
Issue Date: 20/12/2007
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
#define DO_TABLES
|
|
22
|
-
|
|
23
|
-
#include "aes.h"
|
|
24
|
-
#include "aesopt.h"
|
|
25
|
-
|
|
26
|
-
#if defined(FIXED_TABLES)
|
|
27
|
-
|
|
28
|
-
#define sb_data(w) {\
|
|
29
|
-
w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), w(0xc5),\
|
|
30
|
-
w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), w(0xab), w(0x76),\
|
|
31
|
-
w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), w(0x59), w(0x47), w(0xf0),\
|
|
32
|
-
w(0xad), w(0xd4), w(0xa2), w(0xaf), w(0x9c), w(0xa4), w(0x72), w(0xc0),\
|
|
33
|
-
w(0xb7), w(0xfd), w(0x93), w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc),\
|
|
34
|
-
w(0x34), w(0xa5), w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15),\
|
|
35
|
-
w(0x04), w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a),\
|
|
36
|
-
w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), w(0x75),\
|
|
37
|
-
w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), w(0x5a), w(0xa0),\
|
|
38
|
-
w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), w(0xe3), w(0x2f), w(0x84),\
|
|
39
|
-
w(0x53), w(0xd1), w(0x00), w(0xed), w(0x20), w(0xfc), w(0xb1), w(0x5b),\
|
|
40
|
-
w(0x6a), w(0xcb), w(0xbe), w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf),\
|
|
41
|
-
w(0xd0), w(0xef), w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85),\
|
|
42
|
-
w(0x45), w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8),\
|
|
43
|
-
w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), w(0xf5),\
|
|
44
|
-
w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), w(0xf3), w(0xd2),\
|
|
45
|
-
w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), w(0x97), w(0x44), w(0x17),\
|
|
46
|
-
w(0xc4), w(0xa7), w(0x7e), w(0x3d), w(0x64), w(0x5d), w(0x19), w(0x73),\
|
|
47
|
-
w(0x60), w(0x81), w(0x4f), w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88),\
|
|
48
|
-
w(0x46), w(0xee), w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb),\
|
|
49
|
-
w(0xe0), w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c),\
|
|
50
|
-
w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), w(0x79),\
|
|
51
|
-
w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), w(0x4e), w(0xa9),\
|
|
52
|
-
w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), w(0x7a), w(0xae), w(0x08),\
|
|
53
|
-
w(0xba), w(0x78), w(0x25), w(0x2e), w(0x1c), w(0xa6), w(0xb4), w(0xc6),\
|
|
54
|
-
w(0xe8), w(0xdd), w(0x74), w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a),\
|
|
55
|
-
w(0x70), w(0x3e), w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e),\
|
|
56
|
-
w(0x61), w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e),\
|
|
57
|
-
w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), w(0x94),\
|
|
58
|
-
w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), w(0x28), w(0xdf),\
|
|
59
|
-
w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), w(0xe6), w(0x42), w(0x68),\
|
|
60
|
-
w(0x41), w(0x99), w(0x2d), w(0x0f), w(0xb0), w(0x54), w(0xbb), w(0x16) }
|
|
61
|
-
|
|
62
|
-
#define isb_data(w) {\
|
|
63
|
-
w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), w(0x38),\
|
|
64
|
-
w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), w(0xd7), w(0xfb),\
|
|
65
|
-
w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), w(0x2f), w(0xff), w(0x87),\
|
|
66
|
-
w(0x34), w(0x8e), w(0x43), w(0x44), w(0xc4), w(0xde), w(0xe9), w(0xcb),\
|
|
67
|
-
w(0x54), w(0x7b), w(0x94), w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d),\
|
|
68
|
-
w(0xee), w(0x4c), w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e),\
|
|
69
|
-
w(0x08), w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2),\
|
|
70
|
-
w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), w(0x25),\
|
|
71
|
-
w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), w(0x98), w(0x16),\
|
|
72
|
-
w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), w(0x65), w(0xb6), w(0x92),\
|
|
73
|
-
w(0x6c), w(0x70), w(0x48), w(0x50), w(0xfd), w(0xed), w(0xb9), w(0xda),\
|
|
74
|
-
w(0x5e), w(0x15), w(0x46), w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84),\
|
|
75
|
-
w(0x90), w(0xd8), w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a),\
|
|
76
|
-
w(0xf7), w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06),\
|
|
77
|
-
w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), w(0x02),\
|
|
78
|
-
w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), w(0x8a), w(0x6b),\
|
|
79
|
-
w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), w(0x67), w(0xdc), w(0xea),\
|
|
80
|
-
w(0x97), w(0xf2), w(0xcf), w(0xce), w(0xf0), w(0xb4), w(0xe6), w(0x73),\
|
|
81
|
-
w(0x96), w(0xac), w(0x74), w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85),\
|
|
82
|
-
w(0xe2), w(0xf9), w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e),\
|
|
83
|
-
w(0x47), w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89),\
|
|
84
|
-
w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), w(0x1b),\
|
|
85
|
-
w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), w(0x79), w(0x20),\
|
|
86
|
-
w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), w(0xcd), w(0x5a), w(0xf4),\
|
|
87
|
-
w(0x1f), w(0xdd), w(0xa8), w(0x33), w(0x88), w(0x07), w(0xc7), w(0x31),\
|
|
88
|
-
w(0xb1), w(0x12), w(0x10), w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f),\
|
|
89
|
-
w(0x60), w(0x51), w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d),\
|
|
90
|
-
w(0x2d), w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef),\
|
|
91
|
-
w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), w(0xb0),\
|
|
92
|
-
w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), w(0x99), w(0x61),\
|
|
93
|
-
w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), w(0x77), w(0xd6), w(0x26),\
|
|
94
|
-
w(0xe1), w(0x69), w(0x14), w(0x63), w(0x55), w(0x21), w(0x0c), w(0x7d) }
|
|
95
|
-
|
|
96
|
-
#define mm_data(w) {\
|
|
97
|
-
w(0x00), w(0x01), w(0x02), w(0x03), w(0x04), w(0x05), w(0x06), w(0x07),\
|
|
98
|
-
w(0x08), w(0x09), w(0x0a), w(0x0b), w(0x0c), w(0x0d), w(0x0e), w(0x0f),\
|
|
99
|
-
w(0x10), w(0x11), w(0x12), w(0x13), w(0x14), w(0x15), w(0x16), w(0x17),\
|
|
100
|
-
w(0x18), w(0x19), w(0x1a), w(0x1b), w(0x1c), w(0x1d), w(0x1e), w(0x1f),\
|
|
101
|
-
w(0x20), w(0x21), w(0x22), w(0x23), w(0x24), w(0x25), w(0x26), w(0x27),\
|
|
102
|
-
w(0x28), w(0x29), w(0x2a), w(0x2b), w(0x2c), w(0x2d), w(0x2e), w(0x2f),\
|
|
103
|
-
w(0x30), w(0x31), w(0x32), w(0x33), w(0x34), w(0x35), w(0x36), w(0x37),\
|
|
104
|
-
w(0x38), w(0x39), w(0x3a), w(0x3b), w(0x3c), w(0x3d), w(0x3e), w(0x3f),\
|
|
105
|
-
w(0x40), w(0x41), w(0x42), w(0x43), w(0x44), w(0x45), w(0x46), w(0x47),\
|
|
106
|
-
w(0x48), w(0x49), w(0x4a), w(0x4b), w(0x4c), w(0x4d), w(0x4e), w(0x4f),\
|
|
107
|
-
w(0x50), w(0x51), w(0x52), w(0x53), w(0x54), w(0x55), w(0x56), w(0x57),\
|
|
108
|
-
w(0x58), w(0x59), w(0x5a), w(0x5b), w(0x5c), w(0x5d), w(0x5e), w(0x5f),\
|
|
109
|
-
w(0x60), w(0x61), w(0x62), w(0x63), w(0x64), w(0x65), w(0x66), w(0x67),\
|
|
110
|
-
w(0x68), w(0x69), w(0x6a), w(0x6b), w(0x6c), w(0x6d), w(0x6e), w(0x6f),\
|
|
111
|
-
w(0x70), w(0x71), w(0x72), w(0x73), w(0x74), w(0x75), w(0x76), w(0x77),\
|
|
112
|
-
w(0x78), w(0x79), w(0x7a), w(0x7b), w(0x7c), w(0x7d), w(0x7e), w(0x7f),\
|
|
113
|
-
w(0x80), w(0x81), w(0x82), w(0x83), w(0x84), w(0x85), w(0x86), w(0x87),\
|
|
114
|
-
w(0x88), w(0x89), w(0x8a), w(0x8b), w(0x8c), w(0x8d), w(0x8e), w(0x8f),\
|
|
115
|
-
w(0x90), w(0x91), w(0x92), w(0x93), w(0x94), w(0x95), w(0x96), w(0x97),\
|
|
116
|
-
w(0x98), w(0x99), w(0x9a), w(0x9b), w(0x9c), w(0x9d), w(0x9e), w(0x9f),\
|
|
117
|
-
w(0xa0), w(0xa1), w(0xa2), w(0xa3), w(0xa4), w(0xa5), w(0xa6), w(0xa7),\
|
|
118
|
-
w(0xa8), w(0xa9), w(0xaa), w(0xab), w(0xac), w(0xad), w(0xae), w(0xaf),\
|
|
119
|
-
w(0xb0), w(0xb1), w(0xb2), w(0xb3), w(0xb4), w(0xb5), w(0xb6), w(0xb7),\
|
|
120
|
-
w(0xb8), w(0xb9), w(0xba), w(0xbb), w(0xbc), w(0xbd), w(0xbe), w(0xbf),\
|
|
121
|
-
w(0xc0), w(0xc1), w(0xc2), w(0xc3), w(0xc4), w(0xc5), w(0xc6), w(0xc7),\
|
|
122
|
-
w(0xc8), w(0xc9), w(0xca), w(0xcb), w(0xcc), w(0xcd), w(0xce), w(0xcf),\
|
|
123
|
-
w(0xd0), w(0xd1), w(0xd2), w(0xd3), w(0xd4), w(0xd5), w(0xd6), w(0xd7),\
|
|
124
|
-
w(0xd8), w(0xd9), w(0xda), w(0xdb), w(0xdc), w(0xdd), w(0xde), w(0xdf),\
|
|
125
|
-
w(0xe0), w(0xe1), w(0xe2), w(0xe3), w(0xe4), w(0xe5), w(0xe6), w(0xe7),\
|
|
126
|
-
w(0xe8), w(0xe9), w(0xea), w(0xeb), w(0xec), w(0xed), w(0xee), w(0xef),\
|
|
127
|
-
w(0xf0), w(0xf1), w(0xf2), w(0xf3), w(0xf4), w(0xf5), w(0xf6), w(0xf7),\
|
|
128
|
-
w(0xf8), w(0xf9), w(0xfa), w(0xfb), w(0xfc), w(0xfd), w(0xfe), w(0xff) }
|
|
129
|
-
|
|
130
|
-
#define rc_data(w) {\
|
|
131
|
-
w(0x01), w(0x02), w(0x04), w(0x08), w(0x10),w(0x20), w(0x40), w(0x80),\
|
|
132
|
-
w(0x1b), w(0x36) }
|
|
133
|
-
|
|
134
|
-
#define h0(x) (x)
|
|
135
|
-
|
|
136
|
-
#define w0(p) bytes2word(p, 0, 0, 0)
|
|
137
|
-
#define w1(p) bytes2word(0, p, 0, 0)
|
|
138
|
-
#define w2(p) bytes2word(0, 0, p, 0)
|
|
139
|
-
#define w3(p) bytes2word(0, 0, 0, p)
|
|
140
|
-
|
|
141
|
-
#define u0(p) bytes2word(f2(p), p, p, f3(p))
|
|
142
|
-
#define u1(p) bytes2word(f3(p), f2(p), p, p)
|
|
143
|
-
#define u2(p) bytes2word(p, f3(p), f2(p), p)
|
|
144
|
-
#define u3(p) bytes2word(p, p, f3(p), f2(p))
|
|
145
|
-
|
|
146
|
-
#define v0(p) bytes2word(fe(p), f9(p), fd(p), fb(p))
|
|
147
|
-
#define v1(p) bytes2word(fb(p), fe(p), f9(p), fd(p))
|
|
148
|
-
#define v2(p) bytes2word(fd(p), fb(p), fe(p), f9(p))
|
|
149
|
-
#define v3(p) bytes2word(f9(p), fd(p), fb(p), fe(p))
|
|
150
|
-
|
|
151
|
-
#endif
|
|
152
|
-
|
|
153
|
-
#if defined(FIXED_TABLES) || !defined(FF_TABLES)
|
|
154
|
-
|
|
155
|
-
#define f2(x) ((x<<1) ^ (((x>>7) & 1) * WPOLY))
|
|
156
|
-
#define f4(x) ((x<<2) ^ (((x>>6) & 1) * WPOLY) ^ (((x>>6) & 2) * WPOLY))
|
|
157
|
-
#define f8(x) ((x<<3) ^ (((x>>5) & 1) * WPOLY) ^ (((x>>5) & 2) * WPOLY) \
|
|
158
|
-
^ (((x>>5) & 4) * WPOLY))
|
|
159
|
-
#define f3(x) (f2(x) ^ x)
|
|
160
|
-
#define f9(x) (f8(x) ^ x)
|
|
161
|
-
#define fb(x) (f8(x) ^ f2(x) ^ x)
|
|
162
|
-
#define fd(x) (f8(x) ^ f4(x) ^ x)
|
|
163
|
-
#define fe(x) (f8(x) ^ f4(x) ^ f2(x))
|
|
164
|
-
|
|
165
|
-
#else
|
|
166
|
-
|
|
167
|
-
#define f2(x) ((x) ? pow[log[x] + 0x19] : 0)
|
|
168
|
-
#define f3(x) ((x) ? pow[log[x] + 0x01] : 0)
|
|
169
|
-
#define f9(x) ((x) ? pow[log[x] + 0xc7] : 0)
|
|
170
|
-
#define fb(x) ((x) ? pow[log[x] + 0x68] : 0)
|
|
171
|
-
#define fd(x) ((x) ? pow[log[x] + 0xee] : 0)
|
|
172
|
-
#define fe(x) ((x) ? pow[log[x] + 0xdf] : 0)
|
|
173
|
-
|
|
174
|
-
#endif
|
|
175
|
-
|
|
176
|
-
#include "aestab.h"
|
|
177
|
-
|
|
178
|
-
#if defined(__cplusplus)
|
|
179
|
-
extern "C"
|
|
180
|
-
{
|
|
181
|
-
#endif
|
|
182
|
-
|
|
183
|
-
#if defined(FIXED_TABLES)
|
|
184
|
-
|
|
185
|
-
/* implemented in case of wrong call for fixed tables */
|
|
186
|
-
|
|
187
|
-
AES_RETURN aes_init(void)
|
|
188
|
-
{
|
|
189
|
-
return EXIT_SUCCESS;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
#else /* Generate the tables for the dynamic table option */
|
|
193
|
-
|
|
194
|
-
#if defined(FF_TABLES)
|
|
195
|
-
|
|
196
|
-
#define gf_inv(x) ((x) ? pow[ 255 - log[x]] : 0)
|
|
197
|
-
|
|
198
|
-
#else
|
|
199
|
-
|
|
200
|
-
/* It will generally be sensible to use tables to compute finite
|
|
201
|
-
field multiplies and inverses but where memory is scarse this
|
|
202
|
-
code might sometimes be better. But it only has effect during
|
|
203
|
-
initialisation so its pretty unimportant in overall terms.
|
|
204
|
-
*/
|
|
205
|
-
|
|
206
|
-
/* return 2 ^ (n - 1) where n is the bit number of the highest bit
|
|
207
|
-
set in x with x in the range 1 < x < 0x00000200. This form is
|
|
208
|
-
used so that locals within fi can be bytes rather than words
|
|
209
|
-
*/
|
|
210
|
-
|
|
211
|
-
static uint_8t hibit(const uint_32t x)
|
|
212
|
-
{ uint_8t r = (uint_8t)((x >> 1) | (x >> 2));
|
|
213
|
-
|
|
214
|
-
r |= (r >> 2);
|
|
215
|
-
r |= (r >> 4);
|
|
216
|
-
return (r + 1) >> 1;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/* return the inverse of the finite field element x */
|
|
220
|
-
|
|
221
|
-
static uint_8t gf_inv(const uint_8t x)
|
|
222
|
-
{ uint_8t p1 = x, p2 = BPOLY, n1 = hibit(x), n2 = 0x80, v1 = 1, v2 = 0;
|
|
223
|
-
|
|
224
|
-
if(x < 2)
|
|
225
|
-
return x;
|
|
226
|
-
|
|
227
|
-
for( ; ; )
|
|
228
|
-
{
|
|
229
|
-
if(n1)
|
|
230
|
-
while(n2 >= n1) /* divide polynomial p2 by p1 */
|
|
231
|
-
{
|
|
232
|
-
n2 /= n1; /* shift smaller polynomial left */
|
|
233
|
-
p2 ^= (p1 * n2) & 0xff; /* and remove from larger one */
|
|
234
|
-
v2 ^= v1 * n2; /* shift accumulated value and */
|
|
235
|
-
n2 = hibit(p2); /* add into result */
|
|
236
|
-
}
|
|
237
|
-
else
|
|
238
|
-
return v1;
|
|
239
|
-
|
|
240
|
-
if(n2) /* repeat with values swapped */
|
|
241
|
-
while(n1 >= n2)
|
|
242
|
-
{
|
|
243
|
-
n1 /= n2;
|
|
244
|
-
p1 ^= p2 * n1;
|
|
245
|
-
v1 ^= v2 * n1;
|
|
246
|
-
n1 = hibit(p1);
|
|
247
|
-
}
|
|
248
|
-
else
|
|
249
|
-
return v2;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
#endif
|
|
254
|
-
|
|
255
|
-
/* The forward and inverse affine transformations used in the S-box */
|
|
256
|
-
uint_8t fwd_affine(const uint_8t x)
|
|
257
|
-
{ uint_32t w = x;
|
|
258
|
-
w ^= (w << 1) ^ (w << 2) ^ (w << 3) ^ (w << 4);
|
|
259
|
-
return 0x63 ^ ((w ^ (w >> 8)) & 0xff);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
uint_8t inv_affine(const uint_8t x)
|
|
263
|
-
{ uint_32t w = x;
|
|
264
|
-
w = (w << 1) ^ (w << 3) ^ (w << 6);
|
|
265
|
-
return 0x05 ^ ((w ^ (w >> 8)) & 0xff);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
static int init = 0;
|
|
269
|
-
|
|
270
|
-
AES_RETURN aes_init(void)
|
|
271
|
-
{ uint_32t i, w;
|
|
272
|
-
|
|
273
|
-
#if defined(FF_TABLES)
|
|
274
|
-
|
|
275
|
-
uint_8t pow[512], log[256];
|
|
276
|
-
|
|
277
|
-
if(init)
|
|
278
|
-
return EXIT_SUCCESS;
|
|
279
|
-
/* log and power tables for GF(2^8) finite field with
|
|
280
|
-
WPOLY as modular polynomial - the simplest primitive
|
|
281
|
-
root is 0x03, used here to generate the tables
|
|
282
|
-
*/
|
|
283
|
-
|
|
284
|
-
i = 0; w = 1;
|
|
285
|
-
do
|
|
286
|
-
{
|
|
287
|
-
pow[i] = (uint_8t)w;
|
|
288
|
-
pow[i + 255] = (uint_8t)w;
|
|
289
|
-
log[w] = (uint_8t)i++;
|
|
290
|
-
w ^= (w << 1) ^ (w & 0x80 ? WPOLY : 0);
|
|
291
|
-
}
|
|
292
|
-
while (w != 1);
|
|
293
|
-
|
|
294
|
-
#else
|
|
295
|
-
if(init)
|
|
296
|
-
return EXIT_SUCCESS;
|
|
297
|
-
#endif
|
|
298
|
-
|
|
299
|
-
for(i = 0, w = 1; i < RC_LENGTH; ++i)
|
|
300
|
-
{
|
|
301
|
-
t_set(r,c)[i] = bytes2word(w, 0, 0, 0);
|
|
302
|
-
w = f2(w);
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
for(i = 0; i < 256; ++i)
|
|
306
|
-
{ uint_8t b;
|
|
307
|
-
|
|
308
|
-
b = fwd_affine(gf_inv((uint_8t)i));
|
|
309
|
-
w = bytes2word(f2(b), b, b, f3(b));
|
|
310
|
-
|
|
311
|
-
#if defined( SBX_SET )
|
|
312
|
-
t_set(s,box)[i] = b;
|
|
313
|
-
#endif
|
|
314
|
-
|
|
315
|
-
#if defined( FT1_SET ) /* tables for a normal encryption round */
|
|
316
|
-
t_set(f,n)[i] = w;
|
|
317
|
-
#endif
|
|
318
|
-
#if defined( FT4_SET )
|
|
319
|
-
t_set(f,n)[0][i] = w;
|
|
320
|
-
t_set(f,n)[1][i] = upr(w,1);
|
|
321
|
-
t_set(f,n)[2][i] = upr(w,2);
|
|
322
|
-
t_set(f,n)[3][i] = upr(w,3);
|
|
323
|
-
#endif
|
|
324
|
-
w = bytes2word(b, 0, 0, 0);
|
|
325
|
-
|
|
326
|
-
#if defined( FL1_SET ) /* tables for last encryption round (may also */
|
|
327
|
-
t_set(f,l)[i] = w; /* be used in the key schedule) */
|
|
328
|
-
#endif
|
|
329
|
-
#if defined( FL4_SET )
|
|
330
|
-
t_set(f,l)[0][i] = w;
|
|
331
|
-
t_set(f,l)[1][i] = upr(w,1);
|
|
332
|
-
t_set(f,l)[2][i] = upr(w,2);
|
|
333
|
-
t_set(f,l)[3][i] = upr(w,3);
|
|
334
|
-
#endif
|
|
335
|
-
|
|
336
|
-
#if defined( LS1_SET ) /* table for key schedule if t_set(f,l) above is*/
|
|
337
|
-
t_set(l,s)[i] = w; /* not of the required form */
|
|
338
|
-
#endif
|
|
339
|
-
#if defined( LS4_SET )
|
|
340
|
-
t_set(l,s)[0][i] = w;
|
|
341
|
-
t_set(l,s)[1][i] = upr(w,1);
|
|
342
|
-
t_set(l,s)[2][i] = upr(w,2);
|
|
343
|
-
t_set(l,s)[3][i] = upr(w,3);
|
|
344
|
-
#endif
|
|
345
|
-
|
|
346
|
-
b = gf_inv(inv_affine((uint_8t)i));
|
|
347
|
-
w = bytes2word(fe(b), f9(b), fd(b), fb(b));
|
|
348
|
-
|
|
349
|
-
#if defined( IM1_SET ) /* tables for the inverse mix column operation */
|
|
350
|
-
t_set(i,m)[b] = w;
|
|
351
|
-
#endif
|
|
352
|
-
#if defined( IM4_SET )
|
|
353
|
-
t_set(i,m)[0][b] = w;
|
|
354
|
-
t_set(i,m)[1][b] = upr(w,1);
|
|
355
|
-
t_set(i,m)[2][b] = upr(w,2);
|
|
356
|
-
t_set(i,m)[3][b] = upr(w,3);
|
|
357
|
-
#endif
|
|
358
|
-
|
|
359
|
-
#if defined( ISB_SET )
|
|
360
|
-
t_set(i,box)[i] = b;
|
|
361
|
-
#endif
|
|
362
|
-
#if defined( IT1_SET ) /* tables for a normal decryption round */
|
|
363
|
-
t_set(i,n)[i] = w;
|
|
364
|
-
#endif
|
|
365
|
-
#if defined( IT4_SET )
|
|
366
|
-
t_set(i,n)[0][i] = w;
|
|
367
|
-
t_set(i,n)[1][i] = upr(w,1);
|
|
368
|
-
t_set(i,n)[2][i] = upr(w,2);
|
|
369
|
-
t_set(i,n)[3][i] = upr(w,3);
|
|
370
|
-
#endif
|
|
371
|
-
w = bytes2word(b, 0, 0, 0);
|
|
372
|
-
#if defined( IL1_SET ) /* tables for last decryption round */
|
|
373
|
-
t_set(i,l)[i] = w;
|
|
374
|
-
#endif
|
|
375
|
-
#if defined( IL4_SET )
|
|
376
|
-
t_set(i,l)[0][i] = w;
|
|
377
|
-
t_set(i,l)[1][i] = upr(w,1);
|
|
378
|
-
t_set(i,l)[2][i] = upr(w,2);
|
|
379
|
-
t_set(i,l)[3][i] = upr(w,3);
|
|
380
|
-
#endif
|
|
381
|
-
}
|
|
382
|
-
init = 1;
|
|
383
|
-
return EXIT_SUCCESS;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
#endif
|
|
387
|
-
|
|
388
|
-
#if defined(__cplusplus)
|
|
389
|
-
}
|
|
390
|
-
#endif
|
|
391
|
-
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
---------------------------------------------------------------------------
|
|
3
|
-
Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
|
|
4
|
-
|
|
5
|
-
The redistribution and use of this software (with or without changes)
|
|
6
|
-
is allowed without the payment of fees or royalties provided that:
|
|
7
|
-
|
|
8
|
-
source code distributions include the above copyright notice, this
|
|
9
|
-
list of conditions and the following disclaimer;
|
|
10
|
-
|
|
11
|
-
binary distributions include the above copyright notice, this list
|
|
12
|
-
of conditions and the following disclaimer in their documentation.
|
|
13
|
-
|
|
14
|
-
This software is provided 'as is' with no explicit or implied warranties
|
|
15
|
-
in respect of its operation, including, but not limited to, correctness
|
|
16
|
-
and fitness for purpose.
|
|
17
|
-
---------------------------------------------------------------------------
|
|
18
|
-
Issue Date: 20/12/2007
|
|
19
|
-
|
|
20
|
-
This file contains the code for declaring the tables needed to implement
|
|
21
|
-
AES. The file aesopt.h is assumed to be included before this header file.
|
|
22
|
-
If there are no global variables, the definitions here can be used to put
|
|
23
|
-
the AES tables in a structure so that a pointer can then be added to the
|
|
24
|
-
AES context to pass them to the AES routines that need them. If this
|
|
25
|
-
facility is used, the calling program has to ensure that this pointer is
|
|
26
|
-
managed appropriately. In particular, the value of the t_dec(in,it) item
|
|
27
|
-
in the table structure must be set to zero in order to ensure that the
|
|
28
|
-
tables are initialised. In practice the three code sequences in aeskey.c
|
|
29
|
-
that control the calls to aes_init() and the aes_init() routine itself will
|
|
30
|
-
have to be changed for a specific implementation. If global variables are
|
|
31
|
-
available it will generally be preferable to use them with the precomputed
|
|
32
|
-
FIXED_TABLES option that uses static global tables.
|
|
33
|
-
|
|
34
|
-
The following defines can be used to control the way the tables
|
|
35
|
-
are defined, initialised and used in embedded environments that
|
|
36
|
-
require special features for these purposes
|
|
37
|
-
|
|
38
|
-
the 't_dec' construction is used to declare fixed table arrays
|
|
39
|
-
the 't_set' construction is used to set fixed table values
|
|
40
|
-
the 't_use' construction is used to access fixed table values
|
|
41
|
-
|
|
42
|
-
256 byte tables:
|
|
43
|
-
|
|
44
|
-
t_xxx(s,box) => forward S box
|
|
45
|
-
t_xxx(i,box) => inverse S box
|
|
46
|
-
|
|
47
|
-
256 32-bit word OR 4 x 256 32-bit word tables:
|
|
48
|
-
|
|
49
|
-
t_xxx(f,n) => forward normal round
|
|
50
|
-
t_xxx(f,l) => forward last round
|
|
51
|
-
t_xxx(i,n) => inverse normal round
|
|
52
|
-
t_xxx(i,l) => inverse last round
|
|
53
|
-
t_xxx(l,s) => key schedule table
|
|
54
|
-
t_xxx(i,m) => key schedule table
|
|
55
|
-
|
|
56
|
-
Other variables and tables:
|
|
57
|
-
|
|
58
|
-
t_xxx(r,c) => the rcon table
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
#if !defined( _AESTAB_H )
|
|
62
|
-
#define _AESTAB_H
|
|
63
|
-
|
|
64
|
-
#if defined(__cplusplus)
|
|
65
|
-
extern "C" {
|
|
66
|
-
#endif
|
|
67
|
-
|
|
68
|
-
#define t_dec(m,n) t_##m##n
|
|
69
|
-
#define t_set(m,n) t_##m##n
|
|
70
|
-
#define t_use(m,n) t_##m##n
|
|
71
|
-
|
|
72
|
-
#if defined(FIXED_TABLES)
|
|
73
|
-
# if !defined( __GNUC__ ) && (defined( __MSDOS__ ) || defined( __WIN16__ ))
|
|
74
|
-
/* make tables far data to avoid using too much DGROUP space (PG) */
|
|
75
|
-
# define CONST const far
|
|
76
|
-
# else
|
|
77
|
-
# define CONST const
|
|
78
|
-
# endif
|
|
79
|
-
#else
|
|
80
|
-
# define CONST
|
|
81
|
-
#endif
|
|
82
|
-
|
|
83
|
-
#if defined(DO_TABLES)
|
|
84
|
-
# define EXTERN
|
|
85
|
-
#else
|
|
86
|
-
# define EXTERN extern
|
|
87
|
-
#endif
|
|
88
|
-
|
|
89
|
-
#if defined(_MSC_VER) && defined(TABLE_ALIGN)
|
|
90
|
-
#define ALIGN __declspec(align(TABLE_ALIGN))
|
|
91
|
-
#else
|
|
92
|
-
#define ALIGN
|
|
93
|
-
#endif
|
|
94
|
-
|
|
95
|
-
#if defined( __WATCOMC__ ) && ( __WATCOMC__ >= 1100 )
|
|
96
|
-
# define XP_DIR __cdecl
|
|
97
|
-
#else
|
|
98
|
-
# define XP_DIR
|
|
99
|
-
#endif
|
|
100
|
-
|
|
101
|
-
#if defined(DO_TABLES) && defined(FIXED_TABLES)
|
|
102
|
-
#define d_1(t,n,b,e) EXTERN ALIGN CONST XP_DIR t n[256] = b(e)
|
|
103
|
-
#define d_4(t,n,b,e,f,g,h) EXTERN ALIGN CONST XP_DIR t n[4][256] = { b(e), b(f), b(g), b(h) }
|
|
104
|
-
EXTERN ALIGN CONST uint_32t t_dec(r,c)[RC_LENGTH] = rc_data(w0);
|
|
105
|
-
#else
|
|
106
|
-
#define d_1(t,n,b,e) EXTERN ALIGN CONST XP_DIR t n[256]
|
|
107
|
-
#define d_4(t,n,b,e,f,g,h) EXTERN ALIGN CONST XP_DIR t n[4][256]
|
|
108
|
-
EXTERN ALIGN CONST uint_32t t_dec(r,c)[RC_LENGTH];
|
|
109
|
-
#endif
|
|
110
|
-
|
|
111
|
-
#if defined( SBX_SET )
|
|
112
|
-
d_1(uint_8t, t_dec(s,box), sb_data, h0);
|
|
113
|
-
#endif
|
|
114
|
-
#if defined( ISB_SET )
|
|
115
|
-
d_1(uint_8t, t_dec(i,box), isb_data, h0);
|
|
116
|
-
#endif
|
|
117
|
-
|
|
118
|
-
#if defined( FT1_SET )
|
|
119
|
-
d_1(uint_32t, t_dec(f,n), sb_data, u0);
|
|
120
|
-
#endif
|
|
121
|
-
#if defined( FT4_SET )
|
|
122
|
-
d_4(uint_32t, t_dec(f,n), sb_data, u0, u1, u2, u3);
|
|
123
|
-
#endif
|
|
124
|
-
|
|
125
|
-
#if defined( FL1_SET )
|
|
126
|
-
d_1(uint_32t, t_dec(f,l), sb_data, w0);
|
|
127
|
-
#endif
|
|
128
|
-
#if defined( FL4_SET )
|
|
129
|
-
d_4(uint_32t, t_dec(f,l), sb_data, w0, w1, w2, w3);
|
|
130
|
-
#endif
|
|
131
|
-
|
|
132
|
-
#if defined( IT1_SET )
|
|
133
|
-
d_1(uint_32t, t_dec(i,n), isb_data, v0);
|
|
134
|
-
#endif
|
|
135
|
-
#if defined( IT4_SET )
|
|
136
|
-
d_4(uint_32t, t_dec(i,n), isb_data, v0, v1, v2, v3);
|
|
137
|
-
#endif
|
|
138
|
-
|
|
139
|
-
#if defined( IL1_SET )
|
|
140
|
-
d_1(uint_32t, t_dec(i,l), isb_data, w0);
|
|
141
|
-
#endif
|
|
142
|
-
#if defined( IL4_SET )
|
|
143
|
-
d_4(uint_32t, t_dec(i,l), isb_data, w0, w1, w2, w3);
|
|
144
|
-
#endif
|
|
145
|
-
|
|
146
|
-
#if defined( LS1_SET )
|
|
147
|
-
#if defined( FL1_SET )
|
|
148
|
-
#undef LS1_SET
|
|
149
|
-
#else
|
|
150
|
-
d_1(uint_32t, t_dec(l,s), sb_data, w0);
|
|
151
|
-
#endif
|
|
152
|
-
#endif
|
|
153
|
-
|
|
154
|
-
#if defined( LS4_SET )
|
|
155
|
-
#if defined( FL4_SET )
|
|
156
|
-
#undef LS4_SET
|
|
157
|
-
#else
|
|
158
|
-
d_4(uint_32t, t_dec(l,s), sb_data, w0, w1, w2, w3);
|
|
159
|
-
#endif
|
|
160
|
-
#endif
|
|
161
|
-
|
|
162
|
-
#if defined( IM1_SET )
|
|
163
|
-
d_1(uint_32t, t_dec(i,m), mm_data, v0);
|
|
164
|
-
#endif
|
|
165
|
-
#if defined( IM4_SET )
|
|
166
|
-
d_4(uint_32t, t_dec(i,m), mm_data, v0, v1, v2, v3);
|
|
167
|
-
#endif
|
|
168
|
-
|
|
169
|
-
#if defined(__cplusplus)
|
|
170
|
-
}
|
|
171
|
-
#endif
|
|
172
|
-
|
|
173
|
-
#endif
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
---------------------------------------------------------------------------
|
|
3
|
-
Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
|
|
4
|
-
|
|
5
|
-
The redistribution and use of this software (with or without changes)
|
|
6
|
-
is allowed without the payment of fees or royalties provided that:
|
|
7
|
-
|
|
8
|
-
source code distributions include the above copyright notice, this
|
|
9
|
-
list of conditions and the following disclaimer;
|
|
10
|
-
|
|
11
|
-
binary distributions include the above copyright notice, this list
|
|
12
|
-
of conditions and the following disclaimer in their documentation.
|
|
13
|
-
|
|
14
|
-
This software is provided 'as is' with no explicit or implied warranties
|
|
15
|
-
in respect of its operation, including, but not limited to, correctness
|
|
16
|
-
and fitness for purpose.
|
|
17
|
-
---------------------------------------------------------------------------
|
|
18
|
-
Issue Date: 20/12/2007
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
#ifndef _BRG_ENDIAN_H
|
|
22
|
-
#define _BRG_ENDIAN_H
|
|
23
|
-
|
|
24
|
-
#define IS_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */
|
|
25
|
-
#define IS_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */
|
|
26
|
-
|
|
27
|
-
/* Include files where endian defines and byteswap functions may reside */
|
|
28
|
-
#if defined( __sun )
|
|
29
|
-
# include <sys/isa_defs.h>
|
|
30
|
-
#elif defined( __FreeBSD__ ) || defined( __OpenBSD__ ) || defined( __NetBSD__ )
|
|
31
|
-
# include <sys/endian.h>
|
|
32
|
-
#elif defined( BSD ) && ( BSD >= 199103 ) || defined( __APPLE__ ) || \
|
|
33
|
-
defined( __CYGWIN32__ ) || defined( __DJGPP__ ) || defined( __osf__ )
|
|
34
|
-
# include <machine/endian.h>
|
|
35
|
-
#elif defined( __linux__ ) || defined( __GNUC__ ) || defined( __GNU_LIBRARY__ )
|
|
36
|
-
# if !defined( __MINGW32__ ) && !defined( _AIX )
|
|
37
|
-
# include <endian.h>
|
|
38
|
-
# if !defined( __BEOS__ )
|
|
39
|
-
# include <byteswap.h>
|
|
40
|
-
# endif
|
|
41
|
-
# endif
|
|
42
|
-
#endif
|
|
43
|
-
|
|
44
|
-
/* Now attempt to set the define for platform byte order using any */
|
|
45
|
-
/* of the four forms SYMBOL, _SYMBOL, __SYMBOL & __SYMBOL__, which */
|
|
46
|
-
/* seem to encompass most endian symbol definitions */
|
|
47
|
-
|
|
48
|
-
#if defined( BIG_ENDIAN ) && defined( LITTLE_ENDIAN )
|
|
49
|
-
# if defined( BYTE_ORDER ) && BYTE_ORDER == BIG_ENDIAN
|
|
50
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
51
|
-
# elif defined( BYTE_ORDER ) && BYTE_ORDER == LITTLE_ENDIAN
|
|
52
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
53
|
-
# endif
|
|
54
|
-
#elif defined( BIG_ENDIAN )
|
|
55
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
56
|
-
#elif defined( LITTLE_ENDIAN )
|
|
57
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
58
|
-
#endif
|
|
59
|
-
|
|
60
|
-
#if defined( _BIG_ENDIAN ) && defined( _LITTLE_ENDIAN )
|
|
61
|
-
# if defined( _BYTE_ORDER ) && _BYTE_ORDER == _BIG_ENDIAN
|
|
62
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
63
|
-
# elif defined( _BYTE_ORDER ) && _BYTE_ORDER == _LITTLE_ENDIAN
|
|
64
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
65
|
-
# endif
|
|
66
|
-
#elif defined( _BIG_ENDIAN )
|
|
67
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
68
|
-
#elif defined( _LITTLE_ENDIAN )
|
|
69
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
70
|
-
#endif
|
|
71
|
-
|
|
72
|
-
#if defined( __BIG_ENDIAN ) && defined( __LITTLE_ENDIAN )
|
|
73
|
-
# if defined( __BYTE_ORDER ) && __BYTE_ORDER == __BIG_ENDIAN
|
|
74
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
75
|
-
# elif defined( __BYTE_ORDER ) && __BYTE_ORDER == __LITTLE_ENDIAN
|
|
76
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
77
|
-
# endif
|
|
78
|
-
#elif defined( __BIG_ENDIAN )
|
|
79
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
80
|
-
#elif defined( __LITTLE_ENDIAN )
|
|
81
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
82
|
-
#endif
|
|
83
|
-
|
|
84
|
-
#if defined( __BIG_ENDIAN__ ) && defined( __LITTLE_ENDIAN__ )
|
|
85
|
-
# if defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __BIG_ENDIAN__
|
|
86
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
87
|
-
# elif defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __LITTLE_ENDIAN__
|
|
88
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
89
|
-
# endif
|
|
90
|
-
#elif defined( __BIG_ENDIAN__ )
|
|
91
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
92
|
-
#elif defined( __LITTLE_ENDIAN__ )
|
|
93
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
94
|
-
#endif
|
|
95
|
-
|
|
96
|
-
/* if the platform byte order could not be determined, then try to */
|
|
97
|
-
/* set this define using common machine defines */
|
|
98
|
-
#if !defined(PLATFORM_BYTE_ORDER)
|
|
99
|
-
|
|
100
|
-
#if defined( __alpha__ ) || defined( __alpha ) || defined( i386 ) || \
|
|
101
|
-
defined( __i386__ ) || defined( _M_I86 ) || defined( _M_IX86 ) || \
|
|
102
|
-
defined( __OS2__ ) || defined( sun386 ) || defined( __TURBOC__ ) || \
|
|
103
|
-
defined( vax ) || defined( vms ) || defined( VMS ) || \
|
|
104
|
-
defined( __VMS ) || defined( _M_X64 )
|
|
105
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
106
|
-
|
|
107
|
-
#elif defined( AMIGA ) || defined( applec ) || defined( __AS400__ ) || \
|
|
108
|
-
defined( _CRAY ) || defined( __hppa ) || defined( __hp9000 ) || \
|
|
109
|
-
defined( ibm370 ) || defined( mc68000 ) || defined( m68k ) || \
|
|
110
|
-
defined( __MRC__ ) || defined( __MVS__ ) || defined( __MWERKS__ ) || \
|
|
111
|
-
defined( sparc ) || defined( __sparc) || defined( SYMANTEC_C ) || \
|
|
112
|
-
defined( __VOS__ ) || defined( __TIGCC__ ) || defined( __TANDEM ) || \
|
|
113
|
-
defined( THINK_C ) || defined( __VMCMS__ ) || defined( _AIX )
|
|
114
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
115
|
-
|
|
116
|
-
#elif 0 /* **** EDIT HERE IF NECESSARY **** */
|
|
117
|
-
# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
|
|
118
|
-
#elif 0 /* **** EDIT HERE IF NECESSARY **** */
|
|
119
|
-
# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
|
|
120
|
-
#else
|
|
121
|
-
# error Please edit lines 126 or 128 in brg_endian.h to set the platform byte order
|
|
122
|
-
#endif
|
|
123
|
-
|
|
124
|
-
#endif
|
|
125
|
-
|
|
126
|
-
#endif
|