Skip to content

[IGNORE] New main #160

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 299 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
299 commits
Select commit Hold shift + click to select a range
5b1fe63
feat(Hashing): BLAKE2B-256
hamada147 Sep 12, 2022
0f6c80d
feat(Hashing): BLAKE2B-384
hamada147 Sep 12, 2022
565c47a
feat(Hashing): BLAKE2B-512
hamada147 Sep 12, 2022
a34982a
test: BLAKE2B Unit tests
hamada147 Sep 12, 2022
4e517de
feat(Hashing): BLAKE2S
hamada147 Sep 12, 2022
6354957
feat(Hashing): BLAKE2S-128
hamada147 Sep 12, 2022
e2ed0be
feat(Hashing): BLAKE2S-160
hamada147 Sep 12, 2022
6136ff6
feat(Hashing): BLAKE2S-224
hamada147 Sep 12, 2022
97f401c
feat(Hashing): BLAKE2S-256
hamada147 Sep 12, 2022
436e57e
test: BLAKE2S Unit tests
hamada147 Sep 12, 2022
333798e
docs: Update README.md
hamada147 Sep 12, 2022
3a81e9c
docs: update readme
hamada147 Sep 15, 2022
95bc5bc
docs: Keccak digest research paper
hamada147 Sep 15, 2022
bab4fe5
docs: update read me
hamada147 Sep 15, 2022
5023484
docs: update read me
hamada147 Sep 15, 2022
4c463ed
docs: Update README.md
hamada147 Sep 15, 2022
5e9680e
ci: implement CI
hamada147 Sep 25, 2022
10cb794
chore: add new line to build.gradle.kts files
hamada147 Sep 25, 2022
027fba6
ci: add ktlint plugin
hamada147 Sep 25, 2022
b804afd
chore: enforce code format
hamada147 Sep 25, 2022
e7bd2a7
fix: js module name
hamada147 Sep 25, 2022
afe5080
docs: add workflow status badge
hamada147 Sep 25, 2022
8ea9880
ci: enforce code format
hamada147 Sep 25, 2022
37a371a
ci: update upload reports
hamada147 Sep 25, 2022
fa98e40
ci: enforce code format
hamada147 Sep 25, 2022
2e62040
chore: Update Kotlin from 1.6.21 to 1.7.10
hamada147 Sep 25, 2022
99e9588
chore: enforce code quality
hamada147 Sep 25, 2022
9ad6276
refactor: minor change
hamada147 Sep 25, 2022
ff9891f
chore: UUID init
hamada147 Sep 25, 2022
3e2c320
chore: char ext
hamada147 Sep 25, 2022
c769593
chore: NumberFormatException ext
hamada147 Sep 25, 2022
daae0be
chore: add UnsupportedOperationException
hamada147 Sep 25, 2022
0cc58b4
chore: Long ext
hamada147 Sep 25, 2022
3fb69f3
feat: UUID
hamada147 Sep 25, 2022
16bd8be
test: UUID
hamada147 Sep 25, 2022
d612c19
refactor: refactor: update Gradle build
hamada147 Sep 28, 2022
46c10d1
test: add JsIgnore
hamada147 Sep 25, 2022
740a974
test: ignore failing js unit test
hamada147 Sep 25, 2022
6deaa7d
refactor: fix klint issues
hamada147 Sep 25, 2022
558ca78
refactor: lexicographic order
hamada147 Sep 25, 2022
9b6b4ef
refactor: File name should be in PascalCase
hamada147 Sep 25, 2022
1f67783
refactor: update CI
hamada147 Sep 25, 2022
e5020e3
refactor: macOS with M1 Chip
hamada147 Sep 25, 2022
8871f18
test: js now ignores some unit tests
hamada147 Sep 26, 2022
cb4c42b
refactor: add mising JsIgnore for windows platform
hamada147 Sep 27, 2022
ca0c15d
ci: disable js tests in windows
hamada147 Sep 27, 2022
b6c5a3a
fix: fix for issue #30
hamada147 Sep 27, 2022
3a3a27e
refactor: update Gradle build
hamada147 Sep 28, 2022
1b13232
refactor: improve code
hamada147 Sep 30, 2022
06cf4da
feat: Apollo to support all apple devices
hamada147 Sep 30, 2022
5d7a080
refactor: improve code
hamada147 Sep 30, 2022
ca6e66a
chore: Apollo to support all apple devices
hamada147 Sep 30, 2022
5913bc7
chore: Apollo to support all apple devices
hamada147 Sep 30, 2022
c11a670
chore: add new line at end of file
hamada147 Sep 30, 2022
26f4b3e
refactor: fix lint
hamada147 Sep 30, 2022
6004f87
ci: disable markdown link check
hamada147 Sep 30, 2022
5ebe71f
docs: update readme
hamada147 Sep 30, 2022
695328e
refactor: update Kotlin to 1.7.20
hamada147 Sep 30, 2022
b5e2600
docs: update readme.md
hamada147 Sep 30, 2022
ab244a4
refactor: update UUID gradle build file
hamada147 Sep 30, 2022
0a22f29
docs: disable mingwX86
hamada147 Sep 30, 2022
52dede8
ci: update ci
hamada147 Oct 1, 2022
a6979c0
ci: linux run allTests
hamada147 Oct 1, 2022
8f2b3a5
refactor: Update pull-request.yml
hamada147 Oct 3, 2022
2998ae7
refactor: change base package name for hashing
hamada147 Oct 10, 2022
079be3f
refactor: Update iOS deployment version
hamada147 Oct 10, 2022
9fea334
chore: base64 module init
hamada147 Oct 10, 2022
b600b38
feat: base64
hamada147 Oct 10, 2022
8328319
test: base64
hamada147 Oct 10, 2022
0cdf8c5
refactor: kotlin lint issues
hamada147 Dec 4, 2022
b9f7992
refactor: update package name
hamada147 Dec 4, 2022
31d7606
feat: Base16 encoding & decoding
hamada147 Dec 5, 2022
38d903f
test: Base16
hamada147 Dec 5, 2022
9ec2855
docs: Base16
hamada147 Dec 5, 2022
be86509
ci: mega linter configuration update
hamada147 Dec 5, 2022
47031e0
feat: Base16 Upper
hamada147 Dec 5, 2022
74e7646
test: Base16 Upper
hamada147 Dec 5, 2022
79f4511
docs: Base16 Upper
hamada147 Dec 5, 2022
b38d1a1
docs: Update Base16 readme
hamada147 Dec 5, 2022
4a66979
fix: fixed wrong import in UUID
hamada147 Dec 5, 2022
7dfbe88
feat: Base32
hamada147 Dec 5, 2022
a3c2eef
test: Base32
hamada147 Dec 5, 2022
f5fbd1a
docs: Base32
hamada147 Dec 5, 2022
d0cba5b
refactor: ci wrong reported issues by mega lint
hamada147 Dec 5, 2022
799e001
fix: iOS import was removed by mistake
hamada147 Dec 5, 2022
5f4c1da
ci: Update GitHub actions version to the latest editions
hamada147 Dec 5, 2022
18d69e2
refactor: Base64 refactoring in preparation for Multibase
hamada147 Dec 5, 2022
68ced9b
ci: update Apple test
hamada147 Dec 5, 2022
c37f50f
docs: only allow iOS from Apple and disable the rest
hamada147 Dec 5, 2022
b55bd25
docs: only allow iOS from Apple and disable the rest
hamada147 Dec 5, 2022
77a37a8
fix: HMAC for JS platform
hamada147 Dec 6, 2022
9936415
refactor: ci reported linting issues
hamada147 Dec 6, 2022
feef8dd
feat: Base58
hamada147 Dec 7, 2022
8eac925
feat: Multibase
hamada147 Dec 7, 2022
d3e2c84
ci: handle distribution preperation for JS & iOS
hamada147 Dec 7, 2022
d065360
ci: uncomment the publishing code in gradle
hamada147 Dec 7, 2022
0a3f5f7
ci: Create Deployment.yml
hamada147 Dec 7, 2022
b5c53c4
ci: Update pull-request.yml
hamada147 Dec 7, 2022
4173085
fix: gradle build script
hamada147 Dec 7, 2022
ec76ea2
fix: disable JS on windows platform
hamada147 Dec 7, 2022
90b13d4
ci: Update Deployment.yml
hamada147 Dec 7, 2022
f22ed5f
fix: fix deployment CI script
hamada147 Dec 7, 2022
c37446f
ci: update deployment script
hamada147 Dec 7, 2022
dc23c73
test: removing extra info in all modules build script
hamada147 Dec 7, 2022
72db494
ci: Changed all modules names to lowercase
hamada147 Dec 7, 2022
e6e8c25
ci: small update to CD
hamada147 Dec 7, 2022
8330d80
fix: fix group id
hamada147 Dec 8, 2022
fa2f92a
refactor: Base64
hamada147 Dec 9, 2022
f51b509
refactor: code linting
hamada147 Dec 9, 2022
8b58044
fix: CI nonsense error
hamada147 Dec 9, 2022
39b693f
feat: Utils module
hamada147 Dec 9, 2022
ae359d4
feat: Adding SwiftCryptoKit project
elribonazo Dec 10, 2022
8e28e3a
fix: Add all the required dependencies for Apollo to build with the n…
elribonazo Dec 10, 2022
166a492
feat: Adding EC SEcp256k1 keys from 1.4
elribonazo Dec 10, 2022
747d336
refactor: Apply last linting fixes and correctly integrating the Tests.
elribonazo Dec 10, 2022
5c7b096
refactor: downgrade junit:junit to 4.12 because of com.madgag.spongyc…
elribonazo Dec 10, 2022
02802ee
refactor: suppress not needed warnings
hamada147 Dec 12, 2022
237e49b
feat: base symmetric key encryption module
hamada147 Dec 12, 2022
7b37bf2
refactor: linting issue
hamada147 Dec 13, 2022
e1b8e76
ci: disable windows in CI as it no longer needed
hamada147 Dec 13, 2022
3f857b3
refactor: update build script
hamada147 Dec 13, 2022
5a31b80
ci: disable CPP lint
hamada147 Dec 13, 2022
01a9d2c
refactor: update kotlin from 1.7.20 to 1.7.21
hamada147 Dec 14, 2022
e7f68f5
docs: update docs
hamada147 Dec 14, 2022
fa630f9
docs: UUID
hamada147 Dec 14, 2022
d2b749b
feat: Secure Random
hamada147 Dec 14, 2022
34234d6
refactor: UUID now uses Secure Random in version 4
hamada147 Dec 14, 2022
26fa879
refactor: base-symmetric-encryption now uses Secure Random for IV gen…
hamada147 Dec 14, 2022
07a0176
feat: AES encryption & decryption
hamada147 Dec 14, 2022
2eb2d2d
refactor: code linting errors
hamada147 Dec 14, 2022
c827b6d
refactor: AES
hamada147 Dec 20, 2022
daf4e30
feat: RSA & RSA/PSS
hamada147 Jan 23, 2023
1208bc7
fix: small fixes
hamada147 Feb 1, 2023
e5ad6c7
feat: KeyPair Generation Secp256k1
hamada147 Feb 1, 2023
9dd254f
feat: adding getEncoded to all EC private keys
hamada147 Feb 17, 2023
d33a679
chore: MerkleTree JS usage of encode
hamada147 Feb 20, 2023
b61fc17
refactor: Enforcing additional changes
hamada147 Feb 20, 2023
7ef74f6
feat: Add secp256k1FromCompressed as part of the KMMECPublicKeyCommon…
elribonazo Feb 20, 2023
1c8f1f9
BREAKING CHANGE: Major update
hamada147 Feb 21, 2023
923aeaf
feat: VarInt implementation for KMP
hamada147 Feb 22, 2023
74e5758
fix: Fix duplicate dependencies issue when integrating into sample app
cristianIOHK Mar 27, 2023
49a72ce
ci: disable checkov
amagyar-iohk Mar 28, 2023
a496d58
fix: Fix ECDSA JS implementation
hamada147 Apr 17, 2023
4c88992
chore: fix Folder Structure
hamada147 Apr 17, 2023
6d8b1b6
feat: Ed25519
hamada147 Apr 17, 2023
6d3a7a9
feat: x25519 key pair generation
hamada147 Apr 17, 2023
22ece72
chore: JOSE
hamada147 Apr 18, 2023
223ac1f
chore: Updating version to 1.7.0
hamada147 Apr 20, 2023
0f6f382
chore: jose only support Android & JVM for the time being
hamada147 Apr 20, 2023
3fa942a
build(fix Linux CI): make all folder in lowercase (#72)
mineme0110 Jun 23, 2023
f5a217c
feat(secp256k1): add library to be our dependency for secp256k1 in an…
goncalo-frade-iohk Jul 5, 2023
cdb3e45
build: reenable gitleaks (#81)
goncalo-frade-iohk Jul 14, 2023
75b8366
feat(ed25519): ios, macos implementation of ed25519 (#79)
goncalo-frade-iohk Jul 16, 2023
c87e0c2
feat(x25519): add x25519 implementation for ios, macos (#80)
goncalo-frade-iohk Jul 16, 2023
d70be0f
feat(bip32): add hd derivation for jvm/android, ios/macos and js (#84)
cristianIOHK Jul 19, 2023
7868c3b
build: add swift package manager for apple swift packages (#82)
goncalo-frade-iohk Jul 20, 2023
6b8b389
feat(bip39): Add Bip39 implementation for all platforms (#78)
elribonazo Jul 21, 2023
87e580a
feat: X25519 jsMain (#74)
curtis-h Jul 21, 2023
b70809a
feat(ED25519): ED25519 jsMain implementation (#76)
curtis-h Jul 21, 2023
2448e56
feat(ed25519): add jvm and android ed25519 implementation (#85)
goncalo-frade-iohk Jul 24, 2023
eab3318
test: adds kover to github actions (#86)
amagyar-iohk Jul 27, 2023
c18fc09
fix: BigInteger has no corresponding exportable dataType in JS (#88)
hamada147 Aug 4, 2023
e723704
ATL-5386: Remove cocoapods so it works on the iOS (#87)
goncalo-frade-iohk Aug 8, 2023
c7b1fed
fix(secp256k1): Exposing EC Secp256K1 (#89)
hamada147 Aug 14, 2023
0935bb6
ci: Update GitHub Actions script (#90)
hamada147 Aug 16, 2023
4cb74f8
feat: add mnemonic validation (#94)
goncalo-frade-iohk Sep 26, 2023
42d1d75
feat: compress and uncompress secp256k1 functionality for (macos,ios,…
goncalo-frade-iohk Sep 26, 2023
305d64a
feat: add publicKey to PrivateKeys (#96)
cristianIOHK Sep 27, 2023
7ed9382
build: increase gradle version 1.0.1 (#97)
cristianIOHK Sep 28, 2023
d4e366c
fix: KMP Gradle bug (#99)
hamada147 Oct 2, 2023
1e80892
fix: bugs found while integrating apollo with KMP SDK (#98)
cristianIOHK Oct 2, 2023
9bc0392
fix: constructor and access to some methods were missing in ios (#93)
goncalo-frade-iohk Oct 3, 2023
fba402c
feat(BAE): updating jsMain Ed25519 keys for use in TS (#92)
curtis-h Oct 3, 2023
d7571f2
build: increase gradle version 1.0.2 (#100)
cristianIOHK Oct 3, 2023
1d47d83
fix: deployment script (#101)
hamada147 Oct 4, 2023
295738a
fix: Publish npm package (#103)
elribonazo Oct 4, 2023
9c87360
ci: update deployment for swift package
goncalo-frade-iohk Oct 17, 2023
d3611fe
ci: fix zip path
goncalo-frade-iohk Oct 17, 2023
49d4913
ci: add initial swift package
goncalo-frade-iohk Oct 17, 2023
047cfad
ci: add actor with permissions
goncalo-frade-iohk Oct 17, 2023
45a1d1f
chore: prepare release 1.0.3
goncalo-frade-iohk Oct 17, 2023
68d354b
feat(mnemonic): js doesnt handle List and swift doesnt handle Array t…
goncalo-frade-iohk Oct 30, 2023
d8498cf
build: reorganise apollo and remove unused modules (#106)
goncalo-frade-iohk Nov 13, 2023
69bd7e9
chore(release): cut apollo version 1.0.0
atala-dev Nov 13, 2023
a03e418
chore(release): cut apollo version 1.1.0
atala-dev Nov 13, 2023
7106f11
chore: add LICENCE (#110)
elribonazo Nov 15, 2023
534fa9b
build: CI enhancements to take less time (#113)
hamada147 Nov 15, 2023
f8e906f
fix: add ec pub key validation checks (#112)
hamada147 Nov 21, 2023
b87acad
fix: Base32 re-implemented as per RFC-4648 (#111)
hamada147 Nov 21, 2023
edee1d6
fix: Update npm configuration for npmjs repository (#114)
elribonazo Nov 21, 2023
f31928d
chore(release): cut apollo version 1.1.1
atala-dev Nov 21, 2023
0de4da5
feat: Reorganise Apollo (#116)
hamada147 Nov 29, 2023
d0efcef
docs: add comments to code (#117)
cristianIOHK Nov 30, 2023
54cffcb
fix: ci swift package (#118)
goncalo-frade-iohk Nov 30, 2023
b8e47b8
chore(release): cut apollo version 1.2.0
atala-dev Nov 30, 2023
9d3b229
fix: release has a v in the name this will fix it (#119)
goncalo-frade-iohk Dec 1, 2023
2ccbfe5
chore(release): cut apollo version 1.2.1
atala-dev Dec 1, 2023
b7b6532
fix: remove if since the xcframework is not building with all targets…
goncalo-frade-iohk Dec 5, 2023
74a9147
chore(release): cut apollo version 1.2.2
atala-dev Dec 5, 2023
f7be4ae
fix: remove failing links to unblock dokka documentation generation (…
cristianIOHK Dec 5, 2023
6d23eb1
build: update Kotlin to 1.9.20 (#122)
hamada147 Dec 8, 2023
481bcbc
chore(release): cut apollo version 1.2.3
atala-dev Dec 11, 2023
5e665a0
fix: checksum correctly updated (#123)
goncalo-frade-iohk Dec 11, 2023
c4051f7
fix: checkum CI script second try (#124)
goncalo-frade-iohk Dec 11, 2023
3712b6a
chore(release): cut apollo version 1.2.4
atala-dev Dec 11, 2023
d381882
fix: checksum third try (#125)
goncalo-frade-iohk Dec 11, 2023
789f342
chore(release): cut apollo version 1.2.5
atala-dev Dec 11, 2023
296da99
build: Update Kotlin to 1.9.21 (#126)
hamada147 Dec 12, 2023
9ffca0e
fix: correct swift checksum generation during packaging (#128)
Dec 12, 2023
db3f9c5
chore(release): cut apollo version 1.2.6
atala-dev Dec 12, 2023
e72287e
fix: ci xcode version needs to be updated (#129)
goncalo-frade-iohk Dec 12, 2023
82d1bf8
chore(release): cut apollo version 1.2.7
atala-dev Dec 12, 2023
a3457fa
build: Publish to maven central (#127)
hamada147 Dec 12, 2023
b97ec28
fix: x64 simulator needs to be built with this flags to work
goncalo-frade-iohk Dec 13, 2023
e277706
ci: remove wrong matrix condition (#131)
Dec 14, 2023
62e59b4
build: Disable publish to all but (JVM, Android, KMP) (#132)
hamada147 Dec 14, 2023
3d3907d
chore(release): cut apollo version 1.2.8
atala-dev Dec 14, 2023
a30a0a9
fix: add documentation and release a new version (#133)
goncalo-frade-iohk Dec 14, 2023
bab1a54
chore(release): cut apollo version 1.2.8
atala-dev Dec 14, 2023
baf55f7
fix: ci pipelienes to use correct env vars
Dec 14, 2023
907ddf9
chore(release): cut apollo version 1.2.9
atala-dev Dec 14, 2023
c4f8b9f
fix: crypto is not defined (#136)
hamada147 Dec 19, 2023
039c7a4
docs: add all missing docs (#137)
hamada147 Dec 19, 2023
2be373a
fix: Gradle publish script (#134)
hamada147 Dec 20, 2023
220693d
chore(release): cut apollo version 1.2.10
atala-dev Dec 20, 2023
fa1ea0c
docs: Update README.md (#138)
hamada147 Dec 20, 2023
da7e6fe
refactor: Change PBKDF2SHA512 from class to Object (#139)
hamada147 Dec 27, 2023
998ed45
build: update android compile sdk from 32 to 33 (#140)
hamada147 Dec 27, 2023
b737ff9
build: Enable documentation export to generated Swift/Obj-C code (#141)
hamada147 Dec 27, 2023
c2b432a
build: Update kover version (#142)
hamada147 Dec 27, 2023
0168f4d
build(docs): Update the readme (#144)
hamada147 Jan 11, 2024
6e200a4
ci: add codeowners (#145)
goncalo-frade-iohk Feb 12, 2024
ccf6c52
fix: Apple crash when creating seed with empty string passphrase (#146)
hamada147 Feb 21, 2024
e5cac90
fix: upgrade gradle & libs (#147)
hamada147 Mar 6, 2024
1cdc35a
chore(release): cut apollo version 1.2.11
atala-dev Mar 6, 2024
6e271ef
fix: The need to publish another module to use Apollo (#149)
hamada147 Mar 11, 2024
2bc5ffd
docs: update the PR template (#148)
mkbreuningIOHK Mar 14, 2024
417906f
chore(release): cut apollo version 1.2.12
atala-dev Mar 14, 2024
cadfe6c
fix: current bug when trying to publish an app on app store with apol…
goncalo-frade-iohk Mar 22, 2024
d02bc0a
chore(release): cut apollo version 1.2.13
atala-dev Mar 25, 2024
b06b77b
fix: Allow Apollo to verify der signatures from bc and bitcoin seamle…
elribonazo Apr 12, 2024
81bc4bd
chore(release): cut apollo version 1.2.14
atala-dev Apr 12, 2024
9408372
fix: some platforms were missing the signature normalisation (#155)
goncalo-frade-iohk Apr 29, 2024
948c271
docs: update code owners and fix pull request template (#152)
mkbreuningIOHK Apr 30, 2024
4ffa74c
fix: npm package not being published automatically on CI pipeline. (#…
elribonazo May 7, 2024
8180fa8
chore(release): cut apollo version 1.2.15
atala-dev May 7, 2024
08f8516
fix: Invalid signature integer: negative on JS platform (#158)
elribonazo May 9, 2024
50ff676
chore(release): cut apollo version 1.2.16
atala-dev May 9, 2024
93b44a9
docs: renaming
hamada147 May 20, 2024
ebae58a
Merge branch 'main' into new-main
hamada147 May 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/1-bug-report.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Bug Report
description: Report a bug in the Atala PRISM DIDComm
description: Report a bug in Apollo

body:
- type: dropdown
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/2-feature-request.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: 'Feature Request'
description: Suggest a new feature for Atala PRISM DIDComm
description: Suggest a new feature for Apollo

body:
- type: textarea
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ env:
ATALA_GITHUB_ACTOR: ${{ secrets.ATALA_GITHUB_ACTOR }}
ATALA_GITHUB_TOKEN: ${{ secrets.ATALA_GITHUB_TOKEN }}

on: [pull_request]
on:
pull_request:
workflow_dispatch:

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ Pods/
*.jks
*yarn.lock
JSLibs/iohk-crypto/node_modules
node_modules/
node_modules/
141 changes: 94 additions & 47 deletions CONTRIBUTING.md

Large diffs are not rendered by default.

10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
![badge-platform-js]
![badge-platform-js-node]

![Atala Prism Logo](Logo.png)

A cryptography lib built with Kotlin Multiplatform with support for the following targets:

- JS
Expand Down Expand Up @@ -159,7 +157,7 @@ repositories {
For dependencies
```kotlin
dependencies {
implementation("io.iohk.atala.prism.apollo:apollo:<latest version>")
implementation("org.hyperledger.identus:apollo:<latest version>")
}
```

Expand Down Expand Up @@ -234,7 +232,7 @@ kotlin {
commonMain {
dependencies {
// This following is just an example you can import it as per you needs
implementation 'io.iohk.atala.prism.apollo:apollo:<latest version>'
implementation("org.hyperledger.identus:apollo:<latest version>")
}
}
}
Expand All @@ -258,7 +256,7 @@ kotlin {
val commonMain by getting {
dependencies {
// This following is just an example you can import it as per you needs
implementation("io.iohk.atala.prism.apollo:apollo:<latest version>")
implementation("org.hyperledger.identus:apollo:<latest version>")
}
}
}
Expand All @@ -268,7 +266,7 @@ kotlin {
## How to use for Scala project

```scala
libraryDependencies += "io.iohk.atala.prism.apollo" % "apollo-jvm" % "<latest version>"
libraryDependencies += "org.hyperledger.identus" % "apollo-jvm" % "<latest version>"
```

## Usage
Expand Down
89 changes: 46 additions & 43 deletions apollo/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
implementation("com.ionspin.kotlin:bignum:0.3.9")
implementation("org.kotlincrypto.macs:hmac-sha2:0.3.0")
implementation("org.kotlincrypto.hash:sha2:0.4.0")
Expand Down Expand Up @@ -318,24 +318,28 @@ kotlin {
}

// Enable the export of KDoc (Experimental feature) to Generated Native targets (Apple, Linux, etc.)
targets.withType<org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget> {
targets.withType<KotlinNativeTarget> {
compilations.getByName("main") {
compilerOptions.options.freeCompilerArgs.add("-Xexport-kdoc")
}
}

if (os.isMacOsX) {
tasks.getByName<org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest>("iosX64Test") {
device.set("iPhone 14 Plus")
if (os.isMacOsX)
if (tasks.findByName("iosX64Test") != null) {
tasks.getByName<org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest>("iosX64Test") {
device.set("iPhone 14 Plus")
}
}
tasks.getByName<org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest>("iosSimulatorArm64Test") {
device.set("iPhone 14 Plus")
if (tasks.findByName("iosSimulatorArm64Test") != null) {
tasks.getByName<org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest>("iosSimulatorArm64Test") {
device.set("iPhone 14 Plus")
}
}
}
}

android {
namespace = "io.iohk.atala.prism.apollo"
namespace = "org.hyperledger.identus.apollo"
compileSdk = 34
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig {
Expand All @@ -360,39 +364,6 @@ android {
}
}

afterEvaluate {
tasks.withType<KotlinCompile> {
dependsOn(
":iOSLibs:buildIOHKCryptoKitIphoneos",
":iOSLibs:buildIOHKCryptoKitIphonesimulator",
":iOSLibs:buildIOHKCryptoKitMacosx",
":iOSLibs:buildIOHKSecureRandomGenerationIphoneos",
":iOSLibs:buildIOHKSecureRandomGenerationIphonesimulator",
":iOSLibs:buildIOHKSecureRandomGenerationMacosx"
)
}
tasks.withType<ProcessResources> {
dependsOn(
":iOSLibs:buildIOHKCryptoKitIphoneos",
":iOSLibs:buildIOHKCryptoKitIphonesimulator",
":iOSLibs:buildIOHKCryptoKitMacosx",
":iOSLibs:buildIOHKSecureRandomGenerationIphoneos",
":iOSLibs:buildIOHKSecureRandomGenerationIphonesimulator",
":iOSLibs:buildIOHKSecureRandomGenerationMacosx"
)
}
tasks.withType<CInteropProcess> {
dependsOn(
":iOSLibs:buildIOHKCryptoKitIphoneos",
":iOSLibs:buildIOHKCryptoKitIphonesimulator",
":iOSLibs:buildIOHKCryptoKitMacosx",
":iOSLibs:buildIOHKSecureRandomGenerationIphoneos",
":iOSLibs:buildIOHKSecureRandomGenerationIphonesimulator",
":iOSLibs:buildIOHKSecureRandomGenerationMacosx"
)
}
}

ktlint {
filter {
exclude("**/external/*", "./src/jsMain/kotlin/io/iohk/atala/prism/apollo/utils/external/*")
Expand Down Expand Up @@ -448,13 +419,13 @@ tasks.withType<DokkaTask>().configureEach {
}

npmPublish {
organization.set("atala")
organization.set("hyperledger")
version.set(rootProject.version.toString())
access.set(NpmAccess.PUBLIC)
packages {
access.set(NpmAccess.PUBLIC)
named("js") {
scope.set("atala")
scope.set("hyperledger")
packageName.set("apollo")
readme.set(rootDir.resolve("README.md"))
packageJson {
Expand Down Expand Up @@ -490,6 +461,38 @@ afterEvaluate {
tasks.withType<PublishToMavenLocal> {
dependsOn(tasks.withType<Sign>())
}

tasks.withType<KotlinCompile> {
dependsOn(
":iOSLibs:buildIOHKCryptoKitIphoneos",
":iOSLibs:buildIOHKCryptoKitIphonesimulator",
":iOSLibs:buildIOHKCryptoKitMacosx",
":iOSLibs:buildIOHKSecureRandomGenerationIphoneos",
":iOSLibs:buildIOHKSecureRandomGenerationIphonesimulator",
":iOSLibs:buildIOHKSecureRandomGenerationMacosx"
)
}
tasks.withType<ProcessResources> {
dependsOn(
":iOSLibs:buildIOHKCryptoKitIphoneos",
":iOSLibs:buildIOHKCryptoKitIphonesimulator",
":iOSLibs:buildIOHKCryptoKitMacosx",
":iOSLibs:buildIOHKSecureRandomGenerationIphoneos",
":iOSLibs:buildIOHKSecureRandomGenerationIphonesimulator",
":iOSLibs:buildIOHKSecureRandomGenerationMacosx"
)
}
tasks.withType<CInteropProcess> {
dependsOn(
":iOSLibs:buildIOHKCryptoKitIphoneos",
":iOSLibs:buildIOHKCryptoKitIphonesimulator",
":iOSLibs:buildIOHKCryptoKitMacosx",
":iOSLibs:buildIOHKSecureRandomGenerationIphoneos",
":iOSLibs:buildIOHKSecureRandomGenerationIphonesimulator",
":iOSLibs:buildIOHKSecureRandomGenerationMacosx"
)
}

// Disable publish of targets
if (tasks.findByName("publishIosX64PublicationToSonatypeRepository") != null) {
tasks.named("publishIosX64PublicationToSonatypeRepository") {
Expand Down
42 changes: 23 additions & 19 deletions apollo/docs/Apollo.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,46 @@
# Module Apollo

![Atala Prism Logo](./images/Logo.png)

A cryptography lib built with Kotlin Multiplatform with support for the following targets:

- JS
- iOS
- Android
- JVM

## Apollo: The Secure Foundation of Atala PRISM
## Apollo: The Secure Foundation of Identus platform

Apollo is the robust cryptographic engine driving the security and privacy of Atala PRISM, a comprehensive suite of
blockchain-powered solutions. This collection of cryptographic methods provides the solid foundation upon which Atala PRISM
builds its diverse functionalities.
Apollo is the robust cryptographic engine driving the security and privacy of Identus platform, a comprehensive suite of
blockchain-powered solutions. This collection of cryptographic methods provides the solid foundation upon which Identus
platform builds its diverse functionalities.

### Key Features of Apollo:

- **Hashing:** Cryptographically secure hashing functions, including the widely trusted SHA-2 family and PBKDF2SHA512, ensure data integrity and prevent tampering.
- **Hashing:** Cryptographically secure hashing functions, including the widely trusted SHA-2 family and PBKDF2SHA512,
ensure data integrity and prevent tampering.
- **Base64 Encoding/Decoding:** This efficient encoding scheme allows secure transmission and storage of binary data.
- **Elliptic Curve Cryptography (Secp256k1):** This cutting-edge cryptographic algorithm provides robust digital signatures and key generation for secure transactions.
- **Secure Random Generation:** High-quality randomness is crucial for cryptographic processes, and Apollo employs advanced techniques to guarantee its integrity.
- **Key Derivation:** Securely deriving new cryptographic keys from existing ones enhances security and protects against key compromise.
- **Mnemonic Generation:** Transforming complex private keys into human-memorable phrases improves user experience and accessibility.
- **Hierarchical Deterministic Key Management (HDKey):** This powerful system allows generating a vast number of child keys from a single master key, facilitating robust key management for diverse applications.
- **Elliptic Curve Cryptography (Secp256k1):** This cutting-edge cryptographic algorithm provides robust digital
signatures and key generation for secure transactions.
- **Secure Random Generation:** High-quality randomness is crucial for cryptographic processes, and Apollo employs
advanced techniques to guarantee its integrity.
- **Key Derivation:** Securely deriving new cryptographic keys from existing ones enhances security and protects against
key compromise.
- **Mnemonic Generation:** Transforming complex private keys into human-memorable phrases improves user experience and
accessibility.
- **Hierarchical Deterministic Key Management (HDKey):** This powerful system allows generating a vast number of child
keys from a single master key, facilitating robust key management for diverse applications.

## Security First:

Apollo's commitment to security is paramount. It has undergone two independent security audits, further validating its
reliability and trustworthiness. This meticulous attention to security ensures that Atala PRISM operates at the highest
standards, safeguarding user data and privacy.
Apollo's commitment to security is paramount. It has undergone two independent security audits, further validating its
reliability and trustworthiness. This meticulous attention to security ensures that Identus platform operates at the
highest standards, safeguarding user data and privacy.

## Empowering Secure Solutions:

Through its robust cryptographic capabilities, Apollo empowers Atala PRISM to deliver a range of secure and privacy-preserving
solutions across various industries. From identity management and document verification to supply chain tracking and data
sharing, Apollo provides the essential cryptographic infrastructure for Atala PRISM to thrive in a connected world demanding
unparalleled security and trust.
Through its robust cryptographic capabilities, Apollo empowers Identus platform to deliver a range of secure and
privacy-preserving solutions across various industries. From identity management and document verification to supply
chain tracking and data sharing, Apollo provides the essential cryptographic infrastructure for Identus platform to
thrive in a connected world demanding unparalleled security and trust.

## Cryptography Notice

Expand Down
2 changes: 1 addition & 1 deletion apollo/docs/Base64.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Package io.iohk.atala.prism.apollo.base64
# Package org.hyperledger.identus.apollo.base64

Apollo Base64 is Kotlin Multiplatform library containing Standard & URL safe

Expand Down
2 changes: 1 addition & 1 deletion apollo/docs/SecureRandom.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Package io.iohk.atala.prism.apollo.securerandom
# Package org.hyperledger.identus.apollo.securerandom

Apollo Secure Random is Kotlin Multiplatform library to generate secure random bytes

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.hyperledger.identus.apollo

/**
* The `Platform` class represents the platform on which the application is running.
* This class provides information about the operating system of the device.
*/
public actual object Platform {
/**
* Represents the operating system on which the application is running.
*
* This variable provides the name and version of the operating system in a string format.
*
* The value of this variable is generated at runtime, and it is only applicable for the Android platform.
*
* Example:
* Android 29
*/
public actual val OS: String = "Android ${android.os.Build.VERSION.SDK_INT}"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package org.hyperledger.identus.apollo.derivation

/**
* The Mnemonic class provides utility methods for working with mnemonic codes.
*/
final class Mnemonic {
companion object {
class InvalidMnemonicCode(code: String) : RuntimeException(code)

fun isValidMnemonicCode(code: List<String>): Boolean {
return MnemonicHelper.isValidMnemonicCode(code)
}

fun createRandomMnemonics(): List<String> {
return MnemonicHelper.createRandomMnemonics()
}

fun createSeed(mnemonics: List<String>, passphrase: String = "AtalaPrism"): ByteArray {
return MnemonicHelper.createSeed(mnemonics.toList(), passphrase)
}

fun createRandomSeed(passphrase: String = "AtalaPrism"): ByteArray {
return MnemonicHelper.createRandomSeed(passphrase)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.hyperledger.identus.apollo.derivation

/**
* A class representing a Mnemonic Code.
*
* @param words The list of words representing the mnemonic code.
* @throws MnemonicLengthException if the size of the words list is not divisible by 3.
*/
final class MnemonicCode constructor(val words: List<String>) {
init {
if (words.size % 3 != 0) {
throw MnemonicLengthException("Can't create a DID from mnemonic that is not dividable by 3")
}
}

fun toMnemonic(entropy: ByteArray): List<String> {
return MnemonicHelper.toMnemonicCode(words, entropy)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.hyperledger.identus.apollo.hashing

import org.bitcoinj.crypto.PBKDF2SHA512

/**
* The PBKDF2SHA512 class provides a platform-specific implementation for
* deriving a key from a password using the PBKDF2 algorithm with SHA-512
* hash function.
*/
actual object PBKDF2SHA512 {
/**
* Derives a key from a password using the PBKDF2 algorithm with SHA-512 hash function.
*
* @param p The password used for key derivation.
* @param s The salt value.
* @param c The iteration count.
* @param dkLen The desired length of the derived key in bytes.
* @return The derived key as a ByteArray.
*/
actual fun derive(
p: String,
s: String,
c: Int,
dkLen: Int
): ByteArray {
return PBKDF2SHA512.derive(p, s, c, dkLen)
}
}
Loading
Loading