@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.
Files changed (191) hide show
  1. package/CodePush.js +22 -19
  2. package/CodePush.podspec +3 -3
  3. package/LICENSE.md +1 -1
  4. package/README.md +159 -296
  5. package/android/app/.gradle/config.properties +2 -0
  6. package/android/app/build.gradle +2 -0
  7. package/android/app/local.properties +8 -0
  8. package/android/app/src/main/AndroidManifest.xml +1 -2
  9. package/android/app/src/main/java/com/microsoft/codepush/react/CodePush.java +27 -21
  10. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java +5 -5
  11. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushConstants.java +1 -1
  12. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushDialog.java +1 -1
  13. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInstallMode.java +2 -2
  14. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidPublicKeyException.java +2 -2
  15. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidUpdateException.java +1 -1
  16. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushMalformedDataException.java +2 -2
  17. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushNativeModule.java +5 -5
  18. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushNotInitializedException.java +2 -2
  19. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushTelemetryManager.java +14 -14
  20. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUnknownException.java +2 -2
  21. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateManager.java +1 -1
  22. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateState.java +2 -2
  23. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java +16 -9
  24. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUtils.java +1 -1
  25. package/android/app/src/main/java/com/microsoft/codepush/react/DownloadProgress.java +1 -1
  26. package/android/app/src/main/java/com/microsoft/codepush/react/DownloadProgressCallback.java +1 -1
  27. package/android/app/src/main/java/com/microsoft/codepush/react/FileUtils.java +1 -1
  28. package/android/app/src/main/java/com/microsoft/codepush/react/ReactInstanceHolder.java +1 -1
  29. package/android/app/src/main/java/com/microsoft/codepush/react/SettingsManager.java +1 -1
  30. package/android/app/src/main/java/com/microsoft/codepush/react/TLSSocketFactory.java +1 -1
  31. package/android/build.gradle +3 -0
  32. package/android/codepush.gradle +3 -3
  33. package/docs/advanced-usage.md +56 -0
  34. package/docs/api-android.md +12 -75
  35. package/docs/api-ios.md +5 -17
  36. package/docs/api-js.md +18 -55
  37. package/docs/setup-android.md +15 -397
  38. package/docs/setup-ios.md +24 -198
  39. package/docs/setup-windows.md +7 -74
  40. package/ios/CodePush/CodePush.h +4 -4
  41. package/ios/CodePush/CodePush.m +10 -9
  42. package/ios/CodePush/CodePushConfig.m +14 -11
  43. package/ios/CodePush/CodePushPackage.m +60 -60
  44. package/ios/CodePush/CodePushTelemetryManager.m +13 -13
  45. package/ios/CodePush.xcodeproj/project.pbxproj +24 -470
  46. package/ios/PrivacyInfo.xcprivacy +31 -0
  47. package/package.json +27 -24
  48. package/react-native.config.js +1 -1
  49. package/scripts/generateBundledResourcesHash.js +1 -1
  50. package/scripts/getFilesInFolder.js +1 -1
  51. package/scripts/recordFilesBeforeBundleCommand.js +1 -1
  52. package/typings/react-native-code-push.d.ts +22 -22
  53. package/windows/CodePush/CodePushConfig.cpp +3 -3
  54. package/windows/CodePush/CodePushConfig.h +3 -3
  55. package/windows/CodePush/CodePushNativeModule.cpp +27 -27
  56. package/windows/CodePush/CodePushNativeModule.h +4 -4
  57. package/windows/CodePush/CodePushTelemetryManager.cpp +12 -12
  58. package/windows/CodePush/CodePushTelemetryManager.h +1 -1
  59. package/.azurepipelines/build-rn-code-push-1es.yml +0 -104
  60. package/.azurepipelines/test-rn-code-push.yml +0 -94
  61. package/.config/CredScanSuppressions.json +0 -14
  62. package/SECURITY.md +0 -41
  63. package/docs/multi-deployment-testing-android.md +0 -148
  64. package/docs/multi-deployment-testing-ios.md +0 -59
  65. package/ios/CodePush/Base64/Base64/MF_Base64Additions.h +0 -34
  66. package/ios/CodePush/Base64/Base64/MF_Base64Additions.m +0 -252
  67. package/ios/CodePush/Base64/README.md +0 -47
  68. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithm.h +0 -69
  69. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.h +0 -16
  70. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.m +0 -51
  71. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.h +0 -15
  72. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.m +0 -55
  73. package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.h +0 -24
  74. package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.m +0 -41
  75. package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.h +0 -28
  76. package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.m +0 -205
  77. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.h +0 -103
  78. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.m +0 -322
  79. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.h +0 -37
  80. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.m +0 -145
  81. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.h +0 -35
  82. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.m +0 -551
  83. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTRSAlgorithm.h +0 -23
  84. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.h +0 -43
  85. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.m +0 -230
  86. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.h +0 -31
  87. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.m +0 -113
  88. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.h +0 -38
  89. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.m +0 -500
  90. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.h +0 -18
  91. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.m +0 -214
  92. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.h +0 -23
  93. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.m +0 -29
  94. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.h +0 -19
  95. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.m +0 -68
  96. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.h +0 -18
  97. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.m +0 -72
  98. package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.h +0 -67
  99. package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.m +0 -111
  100. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.h +0 -119
  101. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.m +0 -307
  102. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.h +0 -94
  103. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.m +0 -619
  104. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.h +0 -164
  105. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.m +0 -514
  106. package/ios/CodePush/JWT/Core/Coding/JWTCoding.h +0 -24
  107. package/ios/CodePush/JWT/Core/Coding/JWTCoding.m +0 -11
  108. package/ios/CodePush/JWT/Core/FrameworkSupplement/JWT.h +0 -52
  109. package/ios/CodePush/JWT/Core/FrameworkSupplement/Map.modulemap +0 -5
  110. package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.h +0 -28
  111. package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.m +0 -70
  112. package/ios/CodePush/JWT/Core/Supplement/JWTDeprecations.h +0 -22
  113. package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.h +0 -34
  114. package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.m +0 -73
  115. package/ios/CodePush/JWT/LICENSE +0 -19
  116. package/ios/CodePush/JWT/README.md +0 -489
  117. package/ios/CodePush/SSZipArchive/Common.h +0 -81
  118. package/ios/CodePush/SSZipArchive/README.md +0 -1
  119. package/ios/CodePush/SSZipArchive/SSZipArchive.h +0 -76
  120. package/ios/CodePush/SSZipArchive/SSZipArchive.m +0 -691
  121. package/ios/CodePush/SSZipArchive/aes/aes.h +0 -198
  122. package/ios/CodePush/SSZipArchive/aes/aes_via_ace.h +0 -541
  123. package/ios/CodePush/SSZipArchive/aes/aescrypt.c +0 -294
  124. package/ios/CodePush/SSZipArchive/aes/aeskey.c +0 -548
  125. package/ios/CodePush/SSZipArchive/aes/aesopt.h +0 -739
  126. package/ios/CodePush/SSZipArchive/aes/aestab.c +0 -391
  127. package/ios/CodePush/SSZipArchive/aes/aestab.h +0 -173
  128. package/ios/CodePush/SSZipArchive/aes/brg_endian.h +0 -126
  129. package/ios/CodePush/SSZipArchive/aes/brg_types.h +0 -219
  130. package/ios/CodePush/SSZipArchive/aes/entropy.c +0 -54
  131. package/ios/CodePush/SSZipArchive/aes/entropy.h +0 -16
  132. package/ios/CodePush/SSZipArchive/aes/fileenc.c +0 -144
  133. package/ios/CodePush/SSZipArchive/aes/fileenc.h +0 -121
  134. package/ios/CodePush/SSZipArchive/aes/hmac.c +0 -145
  135. package/ios/CodePush/SSZipArchive/aes/hmac.h +0 -103
  136. package/ios/CodePush/SSZipArchive/aes/prng.c +0 -155
  137. package/ios/CodePush/SSZipArchive/aes/prng.h +0 -82
  138. package/ios/CodePush/SSZipArchive/aes/pwd2key.c +0 -103
  139. package/ios/CodePush/SSZipArchive/aes/pwd2key.h +0 -57
  140. package/ios/CodePush/SSZipArchive/aes/sha1.c +0 -258
  141. package/ios/CodePush/SSZipArchive/aes/sha1.h +0 -73
  142. package/ios/CodePush/SSZipArchive/minizip/crypt.h +0 -130
  143. package/ios/CodePush/SSZipArchive/minizip/ioapi.c +0 -369
  144. package/ios/CodePush/SSZipArchive/minizip/ioapi.h +0 -175
  145. package/ios/CodePush/SSZipArchive/minizip/mztools.c +0 -284
  146. package/ios/CodePush/SSZipArchive/minizip/mztools.h +0 -31
  147. package/ios/CodePush/SSZipArchive/minizip/unzip.c +0 -1839
  148. package/ios/CodePush/SSZipArchive/minizip/unzip.h +0 -248
  149. package/ios/CodePush/SSZipArchive/minizip/zip.c +0 -1910
  150. package/ios/CodePush/SSZipArchive/minizip/zip.h +0 -202
  151. package/scripts/postlink/android/postlink.js +0 -87
  152. package/scripts/postlink/ios/postlink.js +0 -116
  153. package/scripts/postlink/run.js +0 -11
  154. package/scripts/postunlink/android/postunlink.js +0 -74
  155. package/scripts/postunlink/ios/postunlink.js +0 -87
  156. package/scripts/postunlink/run.js +0 -11
  157. package/scripts/tools/linkToolsAndroid.js +0 -57
  158. package/scripts/tools/linkToolsIos.js +0 -130
  159. package/windows-legacy/CodePush/CodePush.csproj +0 -128
  160. package/windows-legacy/CodePush/CodePushUtils.cs +0 -47
  161. package/windows-legacy/CodePush/FileUtils.cs +0 -40
  162. package/windows-legacy/CodePush/Properties/AssemblyInfo.cs +0 -29
  163. package/windows-legacy/CodePush/Properties/CodePush.rd.xml +0 -33
  164. package/windows-legacy/CodePush/UpdateManager.cs +0 -305
  165. package/windows-legacy/CodePush/UpdateUtils.cs +0 -46
  166. package/windows-legacy/CodePush.Net46/Adapters/Http/HttpProgress.cs +0 -28
  167. package/windows-legacy/CodePush.Net46/Adapters/Storage/ApplicationDataContainer.cs +0 -106
  168. package/windows-legacy/CodePush.Net46/CodePush.Net46.csproj +0 -103
  169. package/windows-legacy/CodePush.Net46/CodePushUtils.cs +0 -158
  170. package/windows-legacy/CodePush.Net46/FileUtils.cs +0 -55
  171. package/windows-legacy/CodePush.Net46/Properties/AssemblyInfo.cs +0 -36
  172. package/windows-legacy/CodePush.Net46/UpdateManager.cs +0 -330
  173. package/windows-legacy/CodePush.Net46/UpdateUtils.cs +0 -70
  174. package/windows-legacy/CodePush.Net46/packages.config +0 -5
  175. package/windows-legacy/CodePush.Net46.Test/ApplicationDataContainerTest.cs +0 -105
  176. package/windows-legacy/CodePush.Net46.Test/CodePush.Net46.Test.csproj +0 -137
  177. package/windows-legacy/CodePush.Net46.Test/Properties/AssemblyInfo.cs +0 -36
  178. package/windows-legacy/CodePush.Net46.Test/TelemetryManagerTest.cs +0 -117
  179. package/windows-legacy/CodePush.Net46.Test/app.config +0 -11
  180. package/windows-legacy/CodePush.Net46.Test/packages.config +0 -4
  181. package/windows-legacy/CodePush.Shared/CodePush.Shared.projitems +0 -22
  182. package/windows-legacy/CodePush.Shared/CodePush.Shared.shproj +0 -13
  183. package/windows-legacy/CodePush.Shared/CodePushConstants.cs +0 -35
  184. package/windows-legacy/CodePush.Shared/CodePushNativeModule.cs +0 -329
  185. package/windows-legacy/CodePush.Shared/CodePushReactPackage.cs +0 -235
  186. package/windows-legacy/CodePush.Shared/CodePushUtils.cs +0 -70
  187. package/windows-legacy/CodePush.Shared/InstallMode.cs +0 -9
  188. package/windows-legacy/CodePush.Shared/MinimumBackgroundListener.cs +0 -44
  189. package/windows-legacy/CodePush.Shared/SettingsManager.cs +0 -148
  190. package/windows-legacy/CodePush.Shared/TelemetryManager.cs +0 -250
  191. 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