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 to master #108

Merged
merged 85 commits into from
Jun 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
3c54f1d
Fixed use of deprecated os_ prefixed functions
apaillier-ledger Feb 16, 2023
ee371da
Fix implicit cast warnings
apaillier-ledger Feb 8, 2023
eaaaa04
Fix excess elements in struct initializer warnings
apaillier-ledger Feb 8, 2023
9ec1fb2
Simplify LNS-specific checks
apaillier-ledger Feb 16, 2023
7f6abae
Removed Blue specific code
apaillier-ledger Feb 16, 2023
719d5d2
Now non-LNS devices only have one full OpenPGP app
apaillier-ledger Feb 16, 2023
8f03f23
Fixed unused variable warnings
apaillier-ledger Feb 16, 2023
91714aa
Fix linter output and formatting
cedelavergne-ledger Oct 17, 2023
d72445d
Remove aplha channel from icons
cedelavergne-ledger Oct 18, 2023
1b7e959
Fix scan-build issues
cedelavergne-ledger Oct 18, 2023
e8e46d7
Fix crypto deprecated warnings
cedelavergne-ledger Oct 17, 2023
bebae9b
Use the latest SDK
cedelavergne-ledger Oct 17, 2023
ce190aa
Activate Standard App Files; Add App manifest
cedelavergne-ledger Oct 19, 2023
4257be0
Code refactoring
cedelavergne-ledger Jan 4, 2024
f336a19
Code bugfix
cedelavergne-ledger Jan 18, 2024
9f3130e
PRODUCT: Change Key slots management
cedelavergne-ledger Feb 6, 2024
56c0ece
PRODUCT: Remove deprecated RSA1024
cedelavergne-ledger Feb 6, 2024
1eda578
PRODUCT: Update PIN modes management
cedelavergne-ledger Feb 6, 2024
6d66b73
PRODUCT: Update SEED mode management
cedelavergne-ledger Feb 6, 2024
60bb907
Add Stax support
cedelavergne-ledger Feb 2, 2024
09d1e95
Stax with future nbgl_useCaseKeypad (compilation flag)
cedelavergne-ledger Feb 2, 2024
c63b28a
Update App icons
cedelavergne-ledger Feb 1, 2024
2a7f9ee
Refactoring python cli tools
cedelavergne-ledger Dec 7, 2023
6b90184
Add ragger tests
cedelavergne-ledger Jan 8, 2024
eab32ad
Add Unit Tests
cedelavergne-ledger Jan 17, 2024
a227475
Add Manual Tests
cedelavergne-ledger Jan 17, 2024
438cabf
Add CI workflows
cedelavergne-ledger Feb 2, 2024
f082713
Add pre-commit config
cedelavergne-ledger Jan 8, 2024
0908c34
Refactor documentation
cedelavergne-ledger Jan 18, 2024
e95809c
Merge pull request #94 from LedgerHQ/cev/B2CA-969_clean-and-port-stax
cedelavergne-ledger Feb 16, 2024
91cdd1f
[auto] Update screenshot
sgliner-ledger Feb 27, 2024
a36e567
Re-align with latest Stax SDK update
cedelavergne-ledger Feb 22, 2024
91f6692
Update version
cedelavergne-ledger Feb 23, 2024
9e7453e
Add more explanation on Seed mode usage
cedelavergne-ledger Feb 22, 2024
2969c0e
Fix Historical Bytes Status Indicator value
cedelavergne-ledger Feb 23, 2024
7d68daf
Fix Historical Bytes buffer with correct padding
cedelavergne-ledger Feb 23, 2024
285fbcf
Allow verified PW1 or PW2 before changing pin mode
cedelavergne-ledger Feb 23, 2024
4390142
Fix EC templates on Stax
cedelavergne-ledger Feb 26, 2024
00a23dd
Fix mypy on ragger tests
cedelavergne-ledger Feb 26, 2024
1e23ef7
Merge pull request #96 from LedgerHQ/cev/app_improvements
cedelavergne-ledger Feb 28, 2024
f49c574
custo & formatting
cedelavergne-ledger Feb 29, 2024
aa2d992
Update test tool with advanced expert mode option
cedelavergne-ledger Feb 29, 2024
7205e9d
Update Version to 2.1.0
cedelavergne-ledger Feb 29, 2024
69532fd
fix nistp256 template
cedelavergne-ledger Feb 29, 2024
f60feb0
Disable RSA4096 - watchdog issue
cedelavergne-ledger Feb 29, 2024
2996197
Fix Supported curves
cedelavergne-ledger Feb 29, 2024
913d7ec
Update snapshots
cedelavergne-ledger Feb 29, 2024
d33a4b7
Add limitations and constraints
cedelavergne-ledger Mar 1, 2024
aa8c720
Merge pull request #97 from LedgerHQ/cev/clean_supported_algo
cedelavergne-ledger Mar 1, 2024
4bfe79c
Fix missing elements in backup / restore
cedelavergne-ledger Mar 1, 2024
18152ca
Update doc for Backup/Restore
cedelavergne-ledger Mar 1, 2024
d080e4f
Merge pull request #98 from LedgerHQ/cev/fix_backup_restore
cedelavergne-ledger Mar 1, 2024
9f91786
Add curve secp256K1
cedelavergne-ledger Mar 1, 2024
43e5945
Merge pull request #99 from LedgerHQ/cev/add_secp256K1
cedelavergne-ledger Mar 1, 2024
c252ca0
Update version to 2.2.0
cedelavergne-ledger Mar 13, 2024
1d16c87
Cleanup unused fields
cedelavergne-ledger Mar 13, 2024
6983d8c
Fix screen message buffer overwrite
cedelavergne-ledger Mar 13, 2024
c3c0fde
Fix Security Audit issue OPGP-#01
cedelavergne-ledger Mar 13, 2024
f3070bb
Remove useless TODO comments
cedelavergne-ledger Mar 13, 2024
710de03
Replace memset by explicit_bzero
cedelavergne-ledger Mar 13, 2024
b4a5c23
Replace memmove by strlcpy
cedelavergne-ledger Mar 13, 2024
cc8de8e
Clean magic numbers with define constants
cedelavergne-ledger Mar 13, 2024
ae8d1f7
Cleanup / comment dead code
cedelavergne-ledger Mar 13, 2024
6541cf3
Clear return buffer in case of error
cedelavergne-ledger Mar 13, 2024
43da863
Fix Name display
cedelavergne-ledger Mar 13, 2024
7b7bd27
Add few buffer checks
cedelavergne-ledger Mar 14, 2024
3e98639
Fix #80: set 'URL of public key' on each slot
cedelavergne-ledger Mar 13, 2024
2d309b8
Add debug PRINTF
cedelavergne-ledger Mar 14, 2024
546523a
Improve test tools
cedelavergne-ledger Mar 14, 2024
cd08b73
Merge pull request #100 from LedgerHQ/cev/fix_app_secu
cedelavergne-ledger Mar 14, 2024
8c60342
Revert "Add few buffer checks"
cedelavergne-ledger Mar 14, 2024
6a587af
Fix missing curve 'secp256k1' in the menus
cedelavergne-ledger Mar 14, 2024
120bbeb
Update snapshots
cedelavergne-ledger Mar 14, 2024
dc6b525
Update version
cedelavergne-ledger Mar 14, 2024
400ff19
Merge pull request #102 from LedgerHQ/cev/fix_curves
cedelavergne-ledger Mar 14, 2024
3847b06
Add inline comment for functions description
cedelavergne-ledger Mar 21, 2024
d97b0ea
Minor code optimization to ease readability
cedelavergne-ledger Mar 21, 2024
37f7ab8
Replace multiple 'if' by 'switch/case'
cedelavergne-ledger Mar 21, 2024
45512ca
Fix pytools ECC key attribute name
cedelavergne-ledger Mar 21, 2024
2ec0a05
Update version to 2.2.2
cedelavergne-ledger Mar 21, 2024
4f84034
Merge pull request #104 from LedgerHQ/cev/issue_101_doc
cedelavergne-ledger Mar 21, 2024
d13a12d
Fix DO_GEN_FEATURES empty during restore
cedelavergne-ledger Mar 21, 2024
036760b
Merge pull request #105 from LedgerHQ/cev/fix_hw_feature_restore
cedelavergne-ledger Mar 21, 2024
665c893
[auto] Update screenshot
Apr 8, 2024
74e65a4
Merge pull request #106 from LedgerHQ/auto-update-screenshots
sgliner-ledger Apr 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
125 changes: 12 additions & 113 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,119 +1,18 @@
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
BasedOnStyle: Google
IndentWidth: 4
Language: Cpp
ColumnLimit: 100
PointerAlignment: Right
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
#AlignConsecutiveMacros: true
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true
#AllowAllArgumentsOnNextLine: false
#AllowAllConstructorInitializersOnNextLine: false
AlignConsecutiveMacros: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
SortIncludes: false
SpaceAfterCStyleCast: true
AllowShortCaseLabelsOnASingleLine: false
AllowAllArgumentsOnNextLine: false
AllowShortBlocksOnASingleLine: Never
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: false
#AllowShortLambdasOnASingleLine: None
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false
BinPackArguments: true
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
#IndentPPDirectives: BeforeHash
IndentWidth: 2
IndentWrappedFunctionNames: true
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
RawStringFormats:
- Delimiter: pb
Language: TextProto
BasedOnStyle: google
ReflowComments: true
SortIncludes: false
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 8
UseTab: Never
...

---
8 changes: 8 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Checklist
<!-- Put an `x` in each box when you have completed the items. -->
- [ ] App update process has been followed <!-- See comment below -->
- [ ] Target branch is `develop` <!-- unless you have a very good reason -->
- [ ] Application version has been bumped <!-- required if your changes are to be deployed -->

<!-- Make sure you followed the process described in https://developers.ledger.com/docs/device-app/deliver/maintenance before opening your Pull Request.
Don't hesitate to contact us directly on Discord if you have any questions ! https://developers.ledger.com/discord -->
8 changes: 7 additions & 1 deletion .github/workflows/build_and_functional_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,10 @@ jobs:
uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1
with:
upload_app_binaries_artifact: "compiled_app_binaries"
run_for_devices: '["nanos", "nanox", "nanosp"]'

ragger_tests:
name: Run ragger tests using the reusable workflow
needs: build_application
uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_ragger_tests.yml@v1
with:
download_app_binaries_artifact: "compiled_app_binaries"
44 changes: 44 additions & 0 deletions .github/workflows/codeql_checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: "CodeQL"

on:
workflow_dispatch:
push:
branches:
- master
- main
- develop
pull_request:
# Excluded path: add the paths you want to ignore instead of deleting the workflow
paths-ignore:
- '.github/workflows/*.yml'
- 'tests/*'

jobs:
analyse:
name: Analyse
strategy:
matrix:
sdk: [ "$NANOS_SDK", "$NANOX_SDK", "$NANOSP_SDK", "$STAX_SDK" ]
#'cpp' covers C and C++
language: [ 'cpp' ]
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-legacy:latest

steps:
- name: Clone
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
queries: security-and-quality

# CodeQL will create the database during the compilation
- name: Build
run: |
make BOLOS_SDK=${{ matrix.sdk }}

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
25 changes: 25 additions & 0 deletions .github/workflows/coding_style_checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Run coding style check through reusable workflow

# This workflow will run linting checks to ensure a level of uniformization among all Ledger applications.
#
# The presence of this workflow is mandatory as a minimal level of linting is required.
# You are however free to modify the content of the .clang-format file and thus the coding style of your application.
# We simply ask you to not diverge too much from the linting of the Boilerplate application.

on:
workflow_dispatch:
push:
branches:
- master
- main
- develop
pull_request:

jobs:
check_linting:
name: Check linting using the reusable workflow
uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_lint.yml@v1
with:
source: './src'
extensions: 'h,c'
version: 11
2 changes: 0 additions & 2 deletions .github/workflows/guidelines_enforcer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,3 @@ jobs:
guidelines_enforcer:
name: Call Ledger guidelines_enforcer
uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_guidelines_enforcer.yml@v1
with:
run_for_devices: '["nanos", "nanox", "nanosp"]'
29 changes: 29 additions & 0 deletions .github/workflows/misspellings_checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Misspellings checks

# This workflow performs some misspelling checks on the repository
# It is there to help us maintain a level of quality in our codebase and does not have to be kept on forked
# applications.

on:
workflow_dispatch:
push:
branches:
- master
- main
- develop
pull_request:

jobs:
misspell:
name: Check misspellings
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4

- name: Check misspellings
uses: codespell-project/actions-codespell@v2
with:
builtin: clear,rare
check_filenames: true
ignore_words_list: ontop
43 changes: 43 additions & 0 deletions .github/workflows/python_client_checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Checks on the Python client

# This workflow performs some checks on the Python client used by the Application tests
# It is there to help us maintain a level of quality in our codebase and does not have to be kept on forked
# applications.

on:
workflow_dispatch:
push:
branches:
- master
- main
- develop
pull_request:

jobs:
lint:
name: Client linting
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Installing PIP dependencies
run: |
pip install pylint
pip install -r tests/requirements.txt
- name: Lint Python code
run: |
pylint --rc tests/setup.cfg tests/application_client/

mypy:
name: Type checking
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Installing PIP dependencies
run: |
pip install mypy
pip install -r tests/requirements.txt
- name: Mypy type checking
run: |
mypy tests/application_client/
45 changes: 45 additions & 0 deletions .github/workflows/python_tool_checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Checks on the Tools client

# This workflow performs some checks on the Python client used by the cli tool
# It is there to help us maintain a level of quality in our codebase and does not have to be kept on forked
# applications.

on:
workflow_dispatch:
push:
branches:
- master
- main
- develop
pull_request:

jobs:
lint:
name: Client linting
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Installing PIP dependencies
run: |
sudo apt-get update && sudo apt-get install -y libpcsclite-dev
pip install pylint
pip install -r pytools/requirements.txt
- name: Lint Python code
run: |
pylint --rc pytools/setup.cfg pytools/

mypy:
name: Type checking
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Installing PIP dependencies
run: |
sudo apt-get update && sudo apt-get install -y libpcsclite-dev
pip install mypy
pip install -r pytools/requirements.txt
- name: Mypy type checking
run: |
mypy pytools/
Loading
Loading