Skip to content
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

Merge develop to master #620

Open
wants to merge 46 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
956dd12
Fix #584: Set develop version to 1.8.0-SNAPSHOT
banterCZ Feb 27, 2024
9bd37ad
Merge pull request #589 from wultra/issues/584-version-1.8.0-SNAPSHOT
banterCZ Feb 27, 2024
5fbc0c4
Update GitHub Actions to JDK 21
banterCZ Mar 7, 2024
9d72b65
Merge pull request #590 from wultra/issues/gha-jdk-21
banterCZ Mar 7, 2024
e81ae74
Bump com.fasterxml.jackson.core:jackson-databind from 2.16.1 to 2.17.0
dependabot[bot] Mar 18, 2024
f286b76
Merge pull request #592 from wultra/dependabot/maven/com.fasterxml.ja…
dependabot[bot] Mar 18, 2024
cf79c96
Bump org.apache.maven.plugins:maven-compiler-plugin
dependabot[bot] Mar 25, 2024
8d71f34
Bump org.projectlombok:lombok from 1.18.30 to 1.18.32
dependabot[bot] Mar 25, 2024
b0217d2
Merge pull request #594 from wultra/dependabot/maven/org.projectlombo…
dependabot[bot] Mar 25, 2024
5cf19d1
Merge pull request #593 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Mar 25, 2024
a7d6599
Downgrade JDK for Coverity GHA to 17
banterCZ Mar 28, 2024
76a38be
Merge pull request #595 from wultra/issues/gha-coverity-jdk-17
banterCZ Mar 28, 2024
fd03e65
Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1
dependabot[bot] Apr 8, 2024
9699bf6
Bump org.bouncycastle:bcprov-jdk18on from 1.77 to 1.78
dependabot[bot] Apr 8, 2024
9b01331
Merge pull request #597 from wultra/dependabot/maven/org.bouncycastle…
dependabot[bot] Apr 8, 2024
049cb05
Merge pull request #596 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Apr 8, 2024
2b52e64
Disable CodeQL GitHub Action on pull requests
banterCZ Apr 10, 2024
7a4ca01
Fix #599: DocuCheck Warnings
banterCZ Apr 11, 2024
4dc0bc9
Merge pull request #600 from wultra/issues/599-doc-warnings
banterCZ Apr 12, 2024
086744f
Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.0
dependabot[bot] Apr 15, 2024
3ae94fc
Bump slf4j.version from 2.0.12 to 2.0.13
dependabot[bot] Apr 15, 2024
05bc07d
Merge pull request #602 from wultra/dependabot/maven/slf4j.version-2.…
dependabot[bot] Apr 15, 2024
76054d3
Merge pull request #601 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Apr 15, 2024
1469bae
Merge pull request #598 from wultra/issues/limit-codeql
banterCZ Apr 16, 2024
f350a64
Bump org.bouncycastle:bcprov-jdk18on from 1.78 to 1.78.1
dependabot[bot] Apr 22, 2024
15be26e
Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.0 to 3.4.1
dependabot[bot] Apr 22, 2024
458c92e
Merge pull request #603 from wultra/dependabot/maven/org.bouncycastle…
dependabot[bot] Apr 22, 2024
9e7da0c
Merge pull request #604 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Apr 22, 2024
033b046
Fix #605: Refactor BouncyCastle dependency
banterCZ Apr 22, 2024
cf633d1
Merge pull request #606 from wultra/issues/605-bc-dependency
banterCZ Apr 23, 2024
1226df4
Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.1 to 3.1.2
dependabot[bot] May 6, 2024
c5da0ec
Bump com.fasterxml.jackson.core:jackson-databind from 2.17.0 to 2.17.1
dependabot[bot] May 6, 2024
8aa3e00
Merge pull request #608 from wultra/dependabot/maven/com.fasterxml.ja…
dependabot[bot] May 6, 2024
61a9a8f
Merge pull request #607 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] May 6, 2024
8837888
Add dependabot configuration for github-actions
banterCZ May 16, 2024
05de759
Merge pull request #609 from wultra/issues/dependabot-gha
banterCZ May 16, 2024
0317d82
Fix #610: Throwable and Error should not be caught (#611)
jandusil May 31, 2024
f666318
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0
dependabot[bot] Jun 3, 2024
055a81c
Merge pull request #612 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Jun 3, 2024
e23a7a3
Fix #613: Documentation broken link
banterCZ Jun 5, 2024
f2796e9
Merge pull request #615 from wultra/issues/613-broken-link
banterCZ Jun 5, 2024
9065d60
Fix #616: Add a note on built-in keys to the list of used keys (#617)
petrdvorak Jun 10, 2024
a46bae4
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.3.0
dependabot[bot] Jun 17, 2024
6bca7fb
Merge pull request #618 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Jun 17, 2024
ef3af8c
Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2
dependabot[bot] Jun 24, 2024
eb1fd2f
Merge pull request #619 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Jun 24, 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
5 changes: 5 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,8 @@ updates:
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
# Workflow files stored in the default location of `.github/workflows`. (You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.)
directory: "/"
schedule:
interval: "weekly"
6 changes: 2 additions & 4 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ on:
workflow_dispatch:
push:
branches: [ 'develop', 'master', 'releases/**' ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ 'develop', 'master', 'releases/**' ]
schedule:
- cron: '0 2 * * 4'

Expand All @@ -19,4 +16,5 @@ jobs:
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
java_version: 21
2 changes: 2 additions & 0 deletions .github/workflows/maven-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ jobs:
with:
environment: internal-publish
release_type: snapshot
java_version: 21
secrets:
username: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
password: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
Expand All @@ -43,6 +44,7 @@ jobs:
with:
environment: ${{ inputs.environment }}
release_type: ${{ inputs.release_type }}
java_version: 21
secrets:
username: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
password: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/maven-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@ on:
jobs:
maven-tests:
uses: wultra/wultra-infrastructure/.github/workflows/maven-test.yml@develop
secrets: inherit
secrets: inherit
with:
java_version: 21
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@
## Directory-based project format:
.idea/
.mvn
.vscode/
dist/
1 change: 1 addition & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@
## Directory-based project format:
.idea/
.mvn
.vscode/
dist/
2 changes: 1 addition & 1 deletion docs/Activation-Status.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Activation Status

PowerAuth Client may need to check for an activation status, so that it can determine if it should display UI for non-activated state (registration form), blocked state (how to unblock tutorial) or active state (login screen). To facilitate this use-case, PowerAuth Standard RESTful API publishes a [/pa/v3/activation/status](./Standard-RESTful-API#post-pav3activationstatus) endpoint.
PowerAuth Client may need to check for an activation status, so that it can determine if it should display UI for non-activated state (registration form), blocked state (how to unblock tutorial) or active state (login screen). To facilitate this use-case, PowerAuth Standard RESTful API publishes a [/pa/v3/activation/status](./Standard-RESTful-API#activation-status) endpoint.

Checking for an activation status is simple. Client needs to prepare a HTTP request with an activation ID and random `STATUS_CHALLENGE`. Server processes the request and sends back the response with activation status blob and random `STATUS_NONCE`. Activation status blob is an encrypted binary blob that encodes the activation status. Key `KEY_TRANSPORT` and `STATUS_IV` is used to encrypt the activation blob.

Expand Down
2 changes: 1 addition & 1 deletion docs/Activation-via-Recovery-Code.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ After this step, PowerAuth Client performs Key Exchange with the PowerAuth Serve

### Key Exchange

Following diagram shows how public keys are exchanged between PowerAuth Client and PowerAuth Server, and how master shared secret and PowerAuth Standard Keys are derived. The process is very similar to [Key Exchange](Activation.md#key-exchange) from a regular [Activation](Activation.md).
Following diagram shows how public keys are exchanged between PowerAuth Client and PowerAuth Server, and how master shared secret and PowerAuth Standard Keys are derived. The process is very similar to [Key Derivation](Activation.md#key-derivation) from a regular [Activation](Activation.md).

![Activation via Recovery Code](resources/images/sequence_activation_recovery.png)

Expand Down
2 changes: 1 addition & 1 deletion docs/Activation.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ The first layer of encryption protects the data transfer between the mobile app

Detailed documentation of [End-to-End Encryption](./End-To-End-Encryption.md) is available in a dedicated chapter.

A good place to review the exact request and response payload structure is in the [PowerAuth Standard RESTful API documentation](./Standard-RESTful-API.md#post-pav3activationcreate).
A good place to review the exact request and response payload structure is in the [PowerAuth Standard RESTful API documentation](./Standard-RESTful-API.md#initiate-activation).

## Key Derivation

Expand Down
14 changes: 12 additions & 2 deletions docs/List-of-used-keys.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,24 @@

The following keys are used in the PowerAuth cryptography scheme.

## Application Scoped Keys

| name | created as | purpose |
|-----------------------------|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `KEY_SERVER_MASTER_PRIVATE` | ECDH - private key | Embedded on server, used to assure authenticity of data during the transfer from server to client during application scoped use-cases (i.e., device activation). |
| `KEY_SERVER_MASTER_PUBLIC` | ECDH - public key | Embedded in client app, used to verify authenticity of data while transferring from server to client during application scoped use-cases (i.e., device activation). |
| `APP_KEY` | Application version key | Shared random ID between the server and client app, used to identify specific application version. The value travels in plain form over HTTPS channel. |
| `APP_SECRET` | Application version secret | Shared random secret key between the server and client app, used to authenticate specific application version. Used in digest and MAC values. |


## Activation Scoped Keys

| name | created as | purpose |
|-----------------------------|------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `KEY_DEVICE_PRIVATE` | ECDH - private key | Generated on client to allow construction of `KEY_MASTER_SECRET`. |
| `KEY_DEVICE_PUBLIC` | ECDH - public key | Generated on client to allow construction of `KEY_MASTER_SECRET`. |
| `KEY_SERVER_PRIVATE` | ECDH - private key | Generated on server to allow construction of `KEY_MASTER_SECRET`. |
| `KEY_SERVER_PUBLIC` | ECDH - public key | Generated on server to allow construction of `KEY_MASTER_SECRET`. |
| `KEY_SERVER_MASTER_PRIVATE` | ECDH - private key | Stored on server, used to assure authenticity of `KEY_DEVICE_PUBLIC` while transferring from server to client |
| `KEY_SERVER_MASTER_PUBLIC` | ECDH - public key | Stored on client, used to assure authenticity of `KEY_DEVICE_PUBLIC` while transferring from server to client |
| `KEY_MASTER_SECRET` | ECDH - pre-shared | A key deduced using ECDH derivation, `KEY_MASTER_SECRET = ECDH.phase(KEY_DEVICE_PRIVATE, KEY_SERVER_PUBLIC) = ECDH.phase(KEY_SERVER_PRIVATE, KEY_DEVICE_PUBLIC)` and then reduced with `ByteUtils.convert32Bto16B()`. |
| `KEY_SIGNATURE_POSSESSION` | KDF derived key from `KEY_MASTER_SECRET` | A signing key associated with the possession, factor deduced using KDF derivation with `INDEX = 1`, `KEY_SIGNATURE_POSSESSION = KDF.derive(KEY_MASTER_SECRET, 1)`, used for subsequent request signing. |
| `KEY_SIGNATURE_KNOWLEDGE` | KDF derived key from `KEY_MASTER_SECRET` | A key associated with the knowledge factor, deduced using KDF derivation with `INDEX = 2`, `KEY_SIGNATURE_KNOWLEDGE = KDF.derive(KEY_MASTER_SECRET, 2)`, used for subsequent request signing. |
Expand Down
4 changes: 2 additions & 2 deletions docs/_Sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@

**Tutorials**

- [Authentication in Mobile Banking Apps (SCA)](https://developers.wultra.com/products/mobile-security-suite/develop/tutorials/Authentication-in-Mobile-Apps)
- [Verifying PowerAuth Signatures On The Server](https://developers.wultra.com/products/mobile-security-suite/develop/tutorials/Manual-Signature-Verification)
- [Authentication in Mobile Banking Apps (SCA)](https://developers.wultra.com/tutorials/posts/Mobile-First-Authentication/)
- [Verifying PowerAuth Signatures On The Server](https://developers.wultra.com/tutorials/posts/Manual-Signature-Verification/)

**API Reference**

Expand Down
16 changes: 8 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

<groupId>io.getlime.security</groupId>
<artifactId>powerauth-crypto-parent</artifactId>
<version>1.7.0</version>
<version>1.8.0-SNAPSHOT</version>
<packaging>pom</packaging>

<inceptionYear>2016</inceptionYear>
Expand Down Expand Up @@ -74,13 +74,13 @@
<java.version>17</java.version>
<maven.compiler.release>${java.version}</maven.compiler.release>

<maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
<maven-compiler-plugin.version>3.12.1</maven-compiler-plugin.version>
<maven-deploy-plugin.version>3.1.1</maven-deploy-plugin.version>
<maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version>
<maven-source-plugin.version>3.3.0</maven-source-plugin.version>
<maven-surefire-plugin.version>3.2.5</maven-surefire-plugin.version>
<slf4j.version>2.0.12</slf4j.version>
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<maven-deploy-plugin.version>3.1.2</maven-deploy-plugin.version>
<maven-javadoc-plugin.version>3.7.0</maven-javadoc-plugin.version>
<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
<maven-surefire-plugin.version>3.3.0</maven-surefire-plugin.version>
<slf4j.version>2.0.13</slf4j.version>
<junit.version>5.10.2</junit.version>
</properties>

Expand Down
9 changes: 4 additions & 5 deletions powerauth-java-crypto/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<parent>
<groupId>io.getlime.security</groupId>
<artifactId>powerauth-crypto-parent</artifactId>
<version>1.7.0</version>
<version>1.8.0-SNAPSHOT</version>
</parent>

<dependencies>
Expand All @@ -47,7 +47,7 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.16.1</version>
<version>2.17.1</version>
<scope>test</scope>
</dependency>
<dependency>
Expand All @@ -59,13 +59,12 @@
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>1.77</version>
<scope>provided</scope>
<version>1.78.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<version>1.18.32</version>
<scope>provided</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ public static byte[] deriveSharedInfo2Base(EncryptorScope scope, String applicat
}
try {
return new HMACHashUtilities().hash(transportKey, applicationSecretBytes);
} catch (Throwable t) {
throw new EciesException("HMAC calculation failed", t);
} catch (Exception e) {
throw new EciesException("HMAC calculation failed", e);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion powerauth-java-http/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<parent>
<groupId>io.getlime.security</groupId>
<artifactId>powerauth-crypto-parent</artifactId>
<version>1.7.0</version>
<version>1.8.0-SNAPSHOT</version>
</parent>

<dependencies>
Expand Down
Loading