@greenpandastudios/aug-cli 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/THIRD_PARTY_NOTICES.md +4 -0
- package/bin/aug.mjs +12 -2
- package/docs/about.md +27 -0
- package/docs/api/crypto.md +103 -69
- package/docs/api/io.md +35 -33
- package/docs/api/json.md +3 -3
- package/docs/api/memory.md +23 -19
- package/docs/api/time.md +10 -9
- package/docs/api/web.md +33 -38
- package/docs/assets/benchmarks/execution.svg +774 -637
- package/docs/assets/benchmarks/http.svg +278 -249
- package/docs/assets/benchmarks/improvements.svg +66 -66
- package/docs/assets/benchmarks/kernels-mobile.svg +1 -0
- package/docs/assets/benchmarks/kernels.svg +1 -0
- package/docs/assets/benchmarks/memory.svg +153 -153
- package/docs/benchmark-results.json +227089 -90363
- package/docs/compatibility.md +8 -8
- package/docs/contributing-benchmarks.md +68 -0
- package/docs/dev-containers.md +88 -0
- package/docs/dgx-consumers.json +122 -0
- package/docs/dgx-gyms.json +784 -0
- package/docs/dgx-kernels.json +1170 -0
- package/docs/dgx-performance.json +227849 -0
- package/docs/dgx-spark.md +64 -0
- package/docs/diagnostics.md +15 -5
- package/docs/docker.md +173 -12
- package/docs/editor.md +35 -0
- package/docs/example-projects.json +238 -24
- package/docs/examples/approved-design/counters.md +34 -126
- package/docs/examples/approved-design/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/approved-design/domain/app.md +13 -77
- package/docs/examples/approved-design/domain/export.md +5 -19
- package/docs/examples/approved-design/domain/models.md +4 -23
- package/docs/examples/approved-design/domain/numbers.md +24 -114
- package/docs/examples/approved-design/index.md +16 -7
- package/docs/examples/approved-design/main.md +19 -96
- package/docs/examples/benchmark/index.md +6 -5
- package/docs/examples/benchmark/main.md +7 -35
- package/docs/examples/calls-benchmark/index.md +36 -0
- package/docs/examples/calls-benchmark/main.md +78 -0
- package/docs/examples/calls-benchmark/operations.md +60 -0
- package/docs/examples/cli-args/index.md +6 -5
- package/docs/examples/cli-args/main.md +6 -31
- package/docs/examples/collections/index.md +6 -5
- package/docs/examples/collections/main.md +7 -35
- package/docs/examples/collections-benchmark/index.md +6 -5
- package/docs/examples/collections-benchmark/main.md +7 -35
- package/docs/examples/cpu-benchmark/index.md +6 -5
- package/docs/examples/cpu-benchmark/main.md +5 -24
- package/docs/examples/developer-workflow/calculator.md +39 -186
- package/docs/examples/developer-workflow/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/developer-workflow/index.md +16 -7
- package/docs/examples/developer-workflow/logging/console.md +10 -56
- package/docs/examples/developer-workflow/logging/export.md +4 -14
- package/docs/examples/developer-workflow/logging/logger.md +7 -43
- package/docs/examples/developer-workflow/main.md +17 -69
- package/docs/examples/drop/index.md +6 -5
- package/docs/examples/drop/main.md +7 -27
- package/docs/examples/drop/resource.md +7 -30
- package/docs/examples/errors/errors.md +7 -27
- package/docs/examples/errors/index.md +6 -5
- package/docs/examples/errors/main.md +7 -28
- package/docs/examples/errors-benchmark/index.md +36 -0
- package/docs/examples/errors-benchmark/main.md +92 -0
- package/docs/examples/errors-benchmark/operations.md +65 -0
- package/docs/examples/ffi/index.md +6 -5
- package/docs/examples/ffi/main.md +6 -20
- package/docs/examples/ffi/native.md +8 -34
- package/docs/examples/float-benchmark/index.md +35 -0
- package/docs/examples/float-benchmark/main.md +75 -0
- package/docs/examples/generic-di/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/generic-di/index.md +6 -5
- package/docs/examples/generic-di/main.md +9 -39
- package/docs/examples/generic-di/types.md +23 -92
- package/docs/examples/generics/index.md +6 -5
- package/docs/examples/generics/main.md +10 -47
- package/docs/examples/generics/types.md +25 -100
- package/docs/examples/hello/app/export.md +4 -12
- package/docs/examples/hello/app/greeter.md +13 -91
- package/docs/examples/hello/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/hello/index.md +17 -6
- package/docs/examples/hello/logging/console.md +10 -54
- package/docs/examples/hello/logging/export.md +4 -14
- package/docs/examples/hello/logging/logger.md +7 -45
- package/docs/examples/hello/main.md +9 -39
- package/docs/examples/http-benchmark/index.md +6 -5
- package/docs/examples/http-benchmark/main.md +6 -20
- package/docs/examples/http-benchmark/routes.md +9 -31
- package/docs/examples/index.md +63 -29
- package/docs/examples/interceptors/app.md +20 -139
- package/docs/examples/interceptors/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/interceptors/index.md +6 -5
- package/docs/examples/interceptors/interceptors.md +24 -148
- package/docs/examples/interceptors/logging.md +13 -76
- package/docs/examples/interceptors/main.md +10 -65
- package/docs/examples/json-benchmark/data.md +4 -20
- package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
- package/docs/examples/json-benchmark/index.md +7 -5
- package/docs/examples/json-benchmark/main-yaml.md +20 -0
- package/docs/examples/json-benchmark/main.md +10 -49
- package/docs/examples/list-benchmark/index.md +35 -0
- package/docs/examples/list-benchmark/main.md +78 -0
- package/docs/examples/map-churn-benchmark/index.md +35 -0
- package/docs/examples/map-churn-benchmark/main.md +106 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/api.md +104 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.md +54 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi-json.md +48 -0
- package/docs/examples/native-blake3/hashing.md +93 -0
- package/docs/examples/native-blake3/index.md +38 -0
- package/docs/examples/native-blake3/main.md +73 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/api.md +406 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.md +51 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.md +63 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi-json.md +161 -0
- package/docs/examples/native-pytorch/index.md +38 -0
- package/docs/examples/native-pytorch/main.md +73 -0
- package/docs/examples/native-pytorch/tensors.md +123 -0
- package/docs/examples/native-sqlite/database.md +116 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/api.md +284 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.md +51 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.md +75 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi-json.md +119 -0
- package/docs/examples/native-sqlite/index.md +38 -0
- package/docs/examples/native-sqlite/main.md +73 -0
- package/docs/examples/native-zlib/compression.md +99 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/api.md +153 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.md +54 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi-json.md +76 -0
- package/docs/examples/native-zlib/index.md +38 -0
- package/docs/examples/native-zlib/main.md +78 -0
- package/docs/examples/new-syntax/console.md +10 -52
- package/docs/examples/new-syntax/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/new-syntax/greeter.md +13 -71
- package/docs/examples/new-syntax/index.md +6 -5
- package/docs/examples/new-syntax/logger.md +7 -43
- package/docs/examples/new-syntax/main.md +10 -53
- package/docs/examples/new-syntax/math.md +6 -24
- package/docs/examples/oidc-login/client/contracts.md +10 -61
- package/docs/examples/oidc-login/client/endpoints.md +32 -154
- package/docs/examples/oidc-login/client/export.md +5 -23
- package/docs/examples/oidc-login/client/login.md +234 -344
- package/docs/examples/oidc-login/client/logout.md +38 -143
- package/docs/examples/oidc-login/client/protocol.md +183 -304
- package/docs/examples/oidc-login/client/session.md +41 -149
- package/docs/examples/oidc-login/client/views.md +13 -58
- package/docs/examples/oidc-login/common/export.md +6 -26
- package/docs/examples/oidc-login/common/headers.md +42 -72
- package/docs/examples/oidc-login/common/keys.md +40 -164
- package/docs/examples/oidc-login/common/settings.md +24 -40
- package/docs/examples/oidc-login/common/views.md +7 -28
- package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
- package/docs/examples/oidc-login/index.md +8 -7
- package/docs/examples/oidc-login/main-yaml.md +7 -0
- package/docs/examples/oidc-login/main.md +26 -153
- package/docs/examples/oidc-login/provider/authorization.md +232 -275
- package/docs/examples/oidc-login/provider/contracts.md +24 -146
- package/docs/examples/oidc-login/provider/credentials.md +24 -57
- package/docs/examples/oidc-login/provider/discovery.md +48 -122
- package/docs/examples/oidc-login/provider/export.md +11 -37
- package/docs/examples/oidc-login/provider/token.md +159 -237
- package/docs/examples/oidc-login/provider/userinfo.md +47 -102
- package/docs/examples/oidc-login/provider/views.md +13 -53
- package/docs/examples/ownership/counter.md +17 -63
- package/docs/examples/ownership/index.md +6 -5
- package/docs/examples/ownership/main.md +7 -30
- package/docs/examples/ownership-transfer/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/ownership-transfer/index.md +6 -5
- package/docs/examples/ownership-transfer/main.md +10 -52
- package/docs/examples/ownership-transfer/resource.md +15 -67
- package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
- package/docs/examples/packages-app/index.md +7 -6
- package/docs/examples/packages-app/main.md +7 -25
- package/docs/examples/packages-math/aug-package-json.md +1 -1
- package/docs/examples/packages-math/index.md +7 -6
- package/docs/examples/packages-math/src/arithmetic.md +12 -50
- package/docs/examples/packages-math/src/export.md +4 -12
- package/docs/examples/records-benchmark/data.md +55 -0
- package/docs/examples/records-benchmark/index.md +36 -0
- package/docs/examples/records-benchmark/main.md +85 -0
- package/docs/examples/startup-benchmark/index.md +6 -5
- package/docs/examples/startup-benchmark/main.md +5 -17
- package/docs/examples/strings-benchmark/index.md +35 -0
- package/docs/examples/strings-benchmark/main.md +76 -0
- package/docs/examples/tasks-benchmark/index.md +36 -0
- package/docs/examples/tasks-benchmark/main.md +89 -0
- package/docs/examples/tasks-benchmark/operations.md +58 -0
- package/docs/examples/visibility/counter.md +19 -67
- package/docs/examples/visibility/index.md +6 -5
- package/docs/examples/visibility/main.md +7 -31
- package/docs/examples/weather-api/forecasts.md +168 -0
- package/docs/examples/weather-api/index.md +42 -0
- package/docs/examples/weather-api/main-yaml.md +21 -0
- package/docs/examples/weather-api/main.md +65 -0
- package/docs/examples.json +10 -0
- package/docs/getting-started.md +105 -2
- package/docs/grammar.md +7 -5
- package/docs/guides/change-a-module.md +64 -0
- package/docs/guides/index.md +27 -0
- package/docs/gym-results.json +784 -0
- package/docs/implementation-map.md +6 -0
- package/docs/index.md +51 -29
- package/docs/kernel-results.json +1170 -0
- package/docs/language-conformance.md +7 -1
- package/docs/language-constructs.md +30 -22
- package/docs/language-design-audit.md +1 -1
- package/docs/learn/data-and-errors.md +77 -0
- package/docs/learn/index.md +30 -0
- package/docs/learn/modules-and-dependencies.md +73 -0
- package/docs/learn/state-and-tests.md +71 -0
- package/docs/learn/values-and-functions.md +62 -0
- package/docs/lesson-failures.json +8 -0
- package/docs/maintaining-docs.md +16 -4
- package/docs/native-implementation.md +276 -0
- package/docs/native-interop-llvm-plan.md +342 -0
- package/docs/native-package-examples.md +684 -0
- package/docs/native-packages.md +179 -0
- package/docs/packages.md +72 -126
- package/docs/performance.md +61 -68
- package/docs/production-readiness.md +16 -5
- package/docs/public/downloads/approved-design.zip +0 -0
- package/docs/public/downloads/benchmark.zip +0 -0
- package/docs/public/downloads/calls-benchmark.zip +0 -0
- package/docs/public/downloads/cli-args.zip +0 -0
- package/docs/public/downloads/collections-benchmark.zip +0 -0
- package/docs/public/downloads/collections.zip +0 -0
- package/docs/public/downloads/cpu-benchmark.zip +0 -0
- package/docs/public/downloads/developer-workflow.zip +0 -0
- package/docs/public/downloads/drop.zip +0 -0
- package/docs/public/downloads/errors-benchmark.zip +0 -0
- package/docs/public/downloads/errors.zip +0 -0
- package/docs/public/downloads/ffi.zip +0 -0
- package/docs/public/downloads/float-benchmark.zip +0 -0
- package/docs/public/downloads/generic-di.zip +0 -0
- package/docs/public/downloads/generics.zip +0 -0
- package/docs/public/downloads/hello.zip +0 -0
- package/docs/public/downloads/http-benchmark.zip +0 -0
- package/docs/public/downloads/interceptors.zip +0 -0
- package/docs/public/downloads/json-benchmark.zip +0 -0
- package/docs/public/downloads/list-benchmark.zip +0 -0
- package/docs/public/downloads/map-churn-benchmark.zip +0 -0
- package/docs/public/downloads/native-blake3.zip +0 -0
- package/docs/public/downloads/native-pytorch.zip +0 -0
- package/docs/public/downloads/native-sqlite.zip +0 -0
- package/docs/public/downloads/native-zlib.zip +0 -0
- package/docs/public/downloads/new-syntax.zip +0 -0
- package/docs/public/downloads/oidc-login.zip +0 -0
- package/docs/public/downloads/ownership-transfer.zip +0 -0
- package/docs/public/downloads/ownership.zip +0 -0
- package/docs/public/downloads/packages-app.zip +0 -0
- package/docs/public/downloads/packages-math.zip +0 -0
- package/docs/public/downloads/records-benchmark.zip +0 -0
- package/docs/public/downloads/startup-benchmark.zip +0 -0
- package/docs/public/downloads/strings-benchmark.zip +0 -0
- package/docs/public/downloads/tasks-benchmark.zip +0 -0
- package/docs/public/downloads/visibility.zip +0 -0
- package/docs/public/downloads/weather-api.zip +0 -0
- package/docs/qualification-results.md +66 -0
- package/docs/reference.md +47 -17
- package/docs/releasing.md +105 -16
- package/docs/research/code-to-natural-language.md +108 -0
- package/docs/research/ecosystem-workflow.md +41 -0
- package/docs/research/libtorch-native-qualification.md +115 -0
- package/docs/research/native-interop-llvm.md +197 -0
- package/docs/research/qualification-methods.md +15 -0
- package/docs/research/wiki-editorial-design.md +71 -0
- package/docs/roadmap.md +2 -1
- package/docs/safety-gyms.md +41 -0
- package/docs/specifications.md +27 -11
- package/docs/testing.md +19 -5
- package/docs/tooling.md +36 -22
- package/docs/weather-api.md +65 -0
- package/docs/web-library-gaps.md +1 -1
- package/docs/web.md +54 -18
- package/docs/writing-docs.md +49 -0
- package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/approved-design/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/approved-design/.aug-spec/manifest.json +3 -3
- package/examples/approved-design/counters.aug +5 -4
- package/examples/approved-design/counters.aug.md +25 -132
- package/examples/approved-design/domain/app.aug +2 -1
- package/examples/approved-design/domain/app.aug.md +10 -80
- package/examples/approved-design/domain/export.aug +1 -0
- package/examples/approved-design/domain/export.aug.md +4 -20
- package/examples/approved-design/domain/models.aug +1 -0
- package/examples/approved-design/domain/models.aug.md +3 -25
- package/examples/approved-design/domain/numbers.aug +3 -2
- package/examples/approved-design/domain/numbers.aug.md +19 -116
- package/examples/approved-design/main.aug +1 -0
- package/examples/approved-design/main.aug.md +12 -95
- package/examples/benchmark/.aug-spec/manifest.json +1 -1
- package/examples/benchmark/main.aug +1 -0
- package/examples/benchmark/main.aug.md +6 -36
- package/examples/cli-args/.aug-spec/manifest.json +1 -1
- package/examples/cli-args/main.aug +1 -0
- package/examples/cli-args/main.aug.md +5 -32
- package/examples/collections/.aug-spec/manifest.json +1 -1
- package/examples/collections/main.aug +1 -0
- package/examples/collections/main.aug.md +6 -36
- package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/developer-workflow/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
- package/examples/developer-workflow/calculator.aug +3 -2
- package/examples/developer-workflow/calculator.aug.md +28 -189
- package/examples/developer-workflow/logging/console.aug +2 -1
- package/examples/developer-workflow/logging/console.aug.md +7 -57
- package/examples/developer-workflow/logging/export.aug +1 -0
- package/examples/developer-workflow/logging/export.aug.md +3 -15
- package/examples/developer-workflow/logging/logger.aug +1 -0
- package/examples/developer-workflow/logging/logger.aug.md +6 -46
- package/examples/developer-workflow/main.aug +1 -0
- package/examples/developer-workflow/main.aug.md +10 -68
- package/examples/drop/.aug-spec/manifest.json +1 -1
- package/examples/drop/main.aug +1 -0
- package/examples/drop/main.aug.md +6 -28
- package/examples/drop/resource.aug +1 -0
- package/examples/drop/resource.aug.md +6 -34
- package/examples/errors/.aug-spec/manifest.json +1 -1
- package/examples/errors/errors.aug +2 -1
- package/examples/errors/errors.aug.md +4 -27
- package/examples/errors/main.aug +1 -0
- package/examples/errors/main.aug.md +6 -29
- package/examples/ffi/.aug-spec/manifest.json +1 -1
- package/examples/ffi/main.aug +1 -0
- package/examples/ffi/main.aug.md +5 -21
- package/examples/ffi/native.aug +2 -1
- package/examples/ffi/native.aug.md +5 -35
- package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/generic-di/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/generic-di/.aug-spec/manifest.json +3 -3
- package/examples/generic-di/main.aug +1 -0
- package/examples/generic-di/main.aug.md +8 -40
- package/examples/generic-di/types.aug +3 -2
- package/examples/generic-di/types.aug.md +18 -97
- package/examples/generics/.aug-spec/manifest.json +1 -1
- package/examples/generics/main.aug +1 -0
- package/examples/generics/main.aug.md +9 -48
- package/examples/generics/types.aug +4 -3
- package/examples/generics/types.aug.md +18 -104
- package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/hello/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/hello/.aug-spec/manifest.json +3 -3
- package/examples/hello/app/export.aug +1 -0
- package/examples/hello/app/export.aug.md +3 -13
- package/examples/hello/app/greeter.aug +2 -1
- package/examples/hello/app/greeter.aug.md +10 -94
- package/examples/hello/logging/console.aug +2 -1
- package/examples/hello/logging/console.aug.md +7 -55
- package/examples/hello/logging/export.aug +1 -0
- package/examples/hello/logging/export.aug.md +3 -15
- package/examples/hello/logging/logger.aug +1 -0
- package/examples/hello/logging/logger.aug.md +6 -48
- package/examples/hello/main.aug +1 -0
- package/examples/hello/main.aug.md +8 -40
- package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/interceptors/.aug-spec/manifest.json +3 -3
- package/examples/interceptors/app.aug +3 -2
- package/examples/interceptors/app.aug.md +15 -141
- package/examples/interceptors/interceptors.aug +3 -2
- package/examples/interceptors/interceptors.aug.md +19 -152
- package/examples/interceptors/logging.aug +2 -1
- package/examples/interceptors/logging.aug.md +10 -79
- package/examples/interceptors/main.aug +1 -0
- package/examples/interceptors/main.aug.md +9 -66
- package/examples/native-blake3/.aug-spec/manifest.json +16 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.1/native.abi.json +29 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug +14 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug.md +34 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug +4 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug.md +8 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json +29 -0
- package/examples/native-blake3/AGENTS.md +5 -0
- package/examples/native-blake3/aug.lock.json +253 -0
- package/examples/native-blake3/hashing.aug +11 -0
- package/examples/native-blake3/hashing.aug.md +25 -0
- package/examples/native-blake3/main.aug +8 -0
- package/examples/native-blake3/main.aug.md +13 -0
- package/examples/native-pytorch/.aug-spec/manifest.json +18 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.1/native.abi.json +142 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.3/native.abi.json +142 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug +101 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug.md +160 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug +3 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug.md +8 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug +6 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug.md +13 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi.json +142 -0
- package/examples/native-pytorch/AGENTS.md +5 -0
- package/examples/native-pytorch/aug.lock.json +309 -0
- package/examples/native-pytorch/main.aug +8 -0
- package/examples/native-pytorch/main.aug.md +13 -0
- package/examples/native-pytorch/tensors.aug +23 -0
- package/examples/native-pytorch/tensors.aug.md +35 -0
- package/examples/native-sqlite/.aug-spec/manifest.json +18 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.2/native.abi.json +100 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug +48 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug.md +91 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug +3 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug.md +8 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug +8 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug.md +22 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi.json +100 -0
- package/examples/native-sqlite/AGENTS.md +5 -0
- package/examples/native-sqlite/aug.lock.json +236 -0
- package/examples/native-sqlite/database.aug +15 -0
- package/examples/native-sqlite/database.aug.md +27 -0
- package/examples/native-sqlite/main.aug +8 -0
- package/examples/native-sqlite/main.aug.md +13 -0
- package/examples/native-zlib/.aug-spec/manifest.json +16 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.1/native.abi.json +57 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug +29 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug.md +54 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug +4 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug.md +8 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi.json +57 -0
- package/examples/native-zlib/AGENTS.md +5 -0
- package/examples/native-zlib/aug.lock.json +236 -0
- package/examples/native-zlib/compression.aug +15 -0
- package/examples/native-zlib/compression.aug.md +27 -0
- package/examples/native-zlib/main.aug +10 -0
- package/examples/native-zlib/main.aug.md +13 -0
- package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/new-syntax/.aug-spec/manifest.json +3 -3
- package/examples/new-syntax/console.aug +2 -1
- package/examples/new-syntax/console.aug.md +7 -53
- package/examples/new-syntax/greeter.aug +2 -1
- package/examples/new-syntax/greeter.aug.md +10 -74
- package/examples/new-syntax/logger.aug +1 -0
- package/examples/new-syntax/logger.aug.md +6 -46
- package/examples/new-syntax/main.aug +1 -0
- package/examples/new-syntax/main.aug.md +9 -54
- package/examples/new-syntax/math.aug +2 -1
- package/examples/new-syntax/math.aug.md +3 -24
- package/examples/oidc-login/.aug-spec/manifest.json +13 -13
- package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
- package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
- package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
- package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
- package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
- package/examples/oidc-login/aug.lock.json +100 -0
- package/examples/oidc-login/client/contracts.aug +1 -0
- package/examples/oidc-login/client/contracts.aug.md +9 -66
- package/examples/oidc-login/client/endpoints.aug +6 -5
- package/examples/oidc-login/client/endpoints.aug.md +13 -145
- package/examples/oidc-login/client/export.aug +1 -0
- package/examples/oidc-login/client/export.aug.md +4 -24
- package/examples/oidc-login/client/login.aug +7 -6
- package/examples/oidc-login/client/login.aug.md +25 -303
- package/examples/oidc-login/client/logout.aug +5 -4
- package/examples/oidc-login/client/logout.aug.md +13 -135
- package/examples/oidc-login/client/protocol.aug +7 -6
- package/examples/oidc-login/client/protocol.aug.md +36 -283
- package/examples/oidc-login/client/session.aug +5 -4
- package/examples/oidc-login/client/session.aug.md +12 -139
- package/examples/oidc-login/client/views.aug +3 -2
- package/examples/oidc-login/client/views.aug.md +8 -57
- package/examples/oidc-login/common/export.aug +1 -0
- package/examples/oidc-login/common/export.aug.md +5 -27
- package/examples/oidc-login/common/headers.aug +4 -3
- package/examples/oidc-login/common/headers.aug.md +9 -67
- package/examples/oidc-login/common/keys.aug +6 -5
- package/examples/oidc-login/common/keys.aug.md +29 -165
- package/examples/oidc-login/common/settings.aug +2 -1
- package/examples/oidc-login/common/settings.aug.md +5 -39
- package/examples/oidc-login/common/views.aug +2 -1
- package/examples/oidc-login/common/views.aug.md +4 -28
- package/examples/oidc-login/main.aug +6 -16
- package/examples/oidc-login/main.aug.md +17 -146
- package/examples/oidc-login/main.yaml +7 -0
- package/examples/oidc-login/provider/authorization.aug +7 -6
- package/examples/oidc-login/provider/authorization.aug.md +23 -238
- package/examples/oidc-login/provider/contracts.aug +1 -0
- package/examples/oidc-login/provider/contracts.aug.md +23 -158
- package/examples/oidc-login/provider/credentials.aug +3 -2
- package/examples/oidc-login/provider/credentials.aug.md +9 -53
- package/examples/oidc-login/provider/discovery.aug +4 -3
- package/examples/oidc-login/provider/discovery.aug.md +11 -118
- package/examples/oidc-login/provider/export.aug +1 -0
- package/examples/oidc-login/provider/export.aug.md +6 -34
- package/examples/oidc-login/provider/token.aug +6 -5
- package/examples/oidc-login/provider/token.aug.md +16 -204
- package/examples/oidc-login/provider/userinfo.aug +4 -3
- package/examples/oidc-login/provider/userinfo.aug.md +10 -92
- package/examples/oidc-login/provider/views.aug +3 -2
- package/examples/oidc-login/provider/views.aug.md +8 -52
- package/examples/ownership/.aug-spec/manifest.json +1 -1
- package/examples/ownership/counter.aug +3 -2
- package/examples/ownership/counter.aug.md +12 -66
- package/examples/ownership/main.aug +1 -0
- package/examples/ownership/main.aug.md +6 -31
- package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
- package/examples/ownership-transfer/main.aug +1 -0
- package/examples/ownership-transfer/main.aug.md +9 -53
- package/examples/ownership-transfer/resource.aug +2 -1
- package/examples/ownership-transfer/resource.aug.md +12 -71
- package/examples/packages/app/.aug-spec/manifest.json +1 -1
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
- package/examples/packages/app/main.aug +1 -0
- package/examples/packages/app/main.aug.md +6 -26
- package/examples/packages/math/.aug-spec/manifest.json +1 -1
- package/examples/packages/math/aug-package.json +1 -1
- package/examples/packages/math/src/arithmetic.aug +2 -1
- package/examples/packages/math/src/arithmetic.aug.md +9 -51
- package/examples/packages/math/src/export.aug +1 -0
- package/examples/packages/math/src/export.aug.md +3 -13
- package/examples/visibility/.aug-spec/manifest.json +1 -1
- package/examples/visibility/counter.aug +4 -3
- package/examples/visibility/counter.aug.md +12 -68
- package/examples/visibility/main.aug +1 -0
- package/examples/visibility/main.aug.md +6 -32
- package/examples/weather-api/.aug-spec/manifest.json +8 -0
- package/examples/weather-api/AGENTS.md +17 -0
- package/examples/weather-api/README.md +19 -0
- package/examples/weather-api/forecasts.aug +47 -0
- package/examples/weather-api/forecasts.aug.md +32 -0
- package/examples/weather-api/main.aug +4 -0
- package/examples/weather-api/main.aug.md +15 -0
- package/examples/weather-api/main.yaml +5 -0
- package/examples/weather-api/weather.http +5 -0
- package/native/compiler-packs.json +43 -0
- package/package.json +4 -4
- package/runtime/aug_http.c +48 -21
- package/runtime/aug_http_ir.c +30 -0
- package/runtime/aug_http_ir.h +18 -0
- package/runtime/aug_ir.c +209 -0
- package/runtime/aug_ir.h +89 -0
- package/runtime/aug_json.c +6 -1
- package/runtime/aug_runtime.c +82 -16
- package/runtime/aug_runtime.h +16 -2
- package/runtime/aug_tasks.c +38 -7
- package/runtime/aug_values.c +12 -6
- package/scripts/bootstrap-native.mjs +184 -106
- package/scripts/native-setup.mjs +98 -0
- package/scripts/native-toolchain.mjs +28 -0
- package/src/ast.js +1 -1
- package/src/builtins.js +1 -1
- package/src/checker.js +369 -100
- package/src/cli.js +198 -26
- package/src/codegen.js +32 -7
- package/src/compiler-packs.js +66 -0
- package/src/config.js +3 -3
- package/src/contracts.js +10 -0
- package/src/editor.js +86 -22
- package/src/fixes.js +90 -2
- package/src/formatter.js +23 -10
- package/src/git-http.js +137 -0
- package/src/git-packages.js +118 -0
- package/src/help.js +33 -24
- package/src/http-contracts.js +14 -0
- package/src/http-policies.js +5 -5
- package/src/ir-types.js +5 -0
- package/src/ir-verify.js +277 -0
- package/src/ir.js +962 -0
- package/src/libraries.js +1 -1
- package/src/llvm-debug.js +101 -0
- package/src/llvm-native.js +152 -0
- package/src/llvm-platform.js +20 -0
- package/src/llvm.js +781 -0
- package/src/lsp.js +14 -5
- package/src/native-artifacts.js +207 -0
- package/src/native-bindings.js +189 -0
- package/src/native-contracts.js +295 -0
- package/src/native-declarations.js +68 -0
- package/src/native-facts.js +63 -0
- package/src/native.js +19 -13
- package/src/navigation.js +4 -2
- package/src/openapi.js +5 -4
- package/src/package-locking.js +88 -0
- package/src/package-manager.js +267 -68
- package/src/parser.js +32 -6
- package/src/policies.js +3 -3
- package/src/project-init.js +78 -4
- package/src/project.js +11 -9
- package/src/runtime-abi.js +23 -0
- package/src/runtime-adapters.js +18 -0
- package/src/schemas.js +24 -17
- package/src/semantic.js +54 -5
- package/src/snippets.js +60 -0
- package/src/spec-hints.js +56 -0
- package/src/spec-tree.js +241 -0
- package/src/spec.js +669 -305
- package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
- package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
- package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
- package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
- package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
- package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
- package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
- package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
- package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
- package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
- package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/time → packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
|
@@ -1,925 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "august/0.19.0/crypto/contracts.aug · OpenID Connect login application"
|
|
3
|
-
generated: true
|
|
4
|
-
source: "examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug"
|
|
5
|
-
editLink: false
|
|
6
|
-
prev: false
|
|
7
|
-
next: false
|
|
8
|
-
outline: [2, 3]
|
|
9
|
-
search: false
|
|
10
|
-
pageClass: aug-example-page
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# `august/0.19.0/crypto/contracts.aug`
|
|
14
|
-
|
|
15
|
-
[OpenID Connect login application](../../../../index.md) · Dependency source and specification
|
|
16
|
-
|
|
17
|
-
This is the exact dependency version used by this example.
|
|
18
|
-
|
|
19
|
-
::::: example-compare
|
|
20
|
-
|
|
21
|
-
:::: example-code
|
|
22
|
-
|
|
23
|
-
## Code {#code}
|
|
24
|
-
|
|
25
|
-
::: code-group
|
|
26
|
-
|
|
27
|
-
```aug [Indentation]
|
|
28
|
-
/** Explicit permission for native cryptographic operations. Keys and bytes are immutable. */
|
|
29
|
-
capability Crypto:
|
|
30
|
-
/** Generate unpredictable bytes with the operating-system-backed GnuTLS RNG. */
|
|
31
|
-
random(int size) returns Bytes uses Crypto.random unless CryptoError
|
|
32
|
-
/** Hash the complete input using SHA-256. */
|
|
33
|
-
sha256(Bytes input) returns Bytes uses Crypto.sha256 unless CryptoError
|
|
34
|
-
/** Create a fresh 3072-bit RSA private key. Private material is opaque and scrubbed on reclamation. */
|
|
35
|
-
generateRsa() returns RsaPrivateKey uses Crypto.generateRsa unless CryptoError
|
|
36
|
-
/** Export the corresponding public key as an opaque immutable value. */
|
|
37
|
-
publicRsa(RsaPrivateKey key) returns RsaPublicKey uses Crypto.publicRsa unless CryptoError
|
|
38
|
-
/** Sign bytes using RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256). */
|
|
39
|
-
signRsa(RsaPrivateKey key, Bytes input) returns Bytes uses Crypto.signRsa unless CryptoError
|
|
40
|
-
/** Verify only RS256. Invalid signatures return false; invalid keys raise CryptoError. */
|
|
41
|
-
verifyRsa(RsaPublicKey publicKey, Bytes input, Bytes signature) returns bool uses Crypto.verifyRsa unless CryptoError
|
|
42
|
-
/** Decode canonical unpadded URL-safe base64, rejecting invalid characters and unused bits. */
|
|
43
|
-
decodeBase64url(string input) returns Bytes uses Crypto.decodeBase64url unless CryptoError
|
|
44
|
-
/** Compare bytes without early exit on their contents. Length remains observable. */
|
|
45
|
-
equal(Bytes left, Bytes right) returns bool uses Crypto.equal
|
|
46
|
-
/** Export unsigned big-endian modulus and exponent for an RSA JWK. */
|
|
47
|
-
exportRsa(RsaPublicKey publicKey) returns Tuple<Bytes,Bytes> uses Crypto.exportRsa unless CryptoError
|
|
48
|
-
/** Import canonical public RSA parameters. Keys must have 2048 to 8192 bits. */
|
|
49
|
-
importRsa(Bytes modulus, Bytes exponent) returns RsaPublicKey uses Crypto.importRsa unless CryptoError
|
|
50
|
-
/** PBKDF2-HMAC-SHA256, producing 32 bytes. Use a unique 16–64 byte salt; supported work factors are 100,000–2,000,000. */
|
|
51
|
-
passwordHash(Bytes password, Bytes salt, int iterations) returns Bytes uses Crypto.passwordHash unless CryptoError
|
|
52
|
-
extern C value _aug_crypto_random(int size) returns Bytes uses Crypto.random unless CryptoError
|
|
53
|
-
extern C value _aug_crypto_sha256(Bytes input) returns Bytes uses Crypto.sha256 unless CryptoError
|
|
54
|
-
extern C value _aug_crypto_generate_rsa() returns RsaPrivateKey uses Crypto.generateRsa unless CryptoError
|
|
55
|
-
extern C value _aug_crypto_public_rsa(RsaPrivateKey key) returns RsaPublicKey uses Crypto.publicRsa unless CryptoError
|
|
56
|
-
extern C value _aug_crypto_sign_rsa(RsaPrivateKey key, Bytes input) returns Bytes uses Crypto.signRsa unless CryptoError
|
|
57
|
-
extern C value _aug_crypto_verify_rsa(RsaPublicKey publicKey, Bytes input, Bytes signature) returns bool uses Crypto.verifyRsa unless CryptoError
|
|
58
|
-
extern C value _aug_crypto_decode_base64url(string input) returns Bytes uses Crypto.decodeBase64url unless CryptoError
|
|
59
|
-
extern C value _aug_crypto_equal(Bytes left, Bytes right) returns bool uses Crypto.equal
|
|
60
|
-
extern C value _aug_crypto_export_rsa(RsaPublicKey publicKey) returns Tuple<Bytes,Bytes> uses Crypto.exportRsa unless CryptoError
|
|
61
|
-
extern C value _aug_crypto_import_rsa(Bytes modulus, Bytes exponent) returns RsaPublicKey uses Crypto.importRsa unless CryptoError
|
|
62
|
-
extern C value _aug_crypto_password_hash(Bytes password, Bytes salt, int iterations) returns Bytes uses Crypto.passwordHash unless CryptoError
|
|
63
|
-
/** GnuTLS-backed capability adapter. Its constructor performs no I/O or key generation. */
|
|
64
|
-
GnuTlsCrypto() implements Crypto:
|
|
65
|
-
random(int size) returns Bytes unless CryptoError:
|
|
66
|
-
unsafe:
|
|
67
|
-
return _aug_crypto_random(size)
|
|
68
|
-
sha256(Bytes input) returns Bytes unless CryptoError:
|
|
69
|
-
unsafe:
|
|
70
|
-
return _aug_crypto_sha256(input)
|
|
71
|
-
generateRsa() returns RsaPrivateKey unless CryptoError:
|
|
72
|
-
unsafe:
|
|
73
|
-
return _aug_crypto_generate_rsa()
|
|
74
|
-
publicRsa(RsaPrivateKey key) returns RsaPublicKey unless CryptoError:
|
|
75
|
-
unsafe:
|
|
76
|
-
return _aug_crypto_public_rsa(key)
|
|
77
|
-
signRsa(RsaPrivateKey key, Bytes input) returns Bytes unless CryptoError:
|
|
78
|
-
unsafe:
|
|
79
|
-
return _aug_crypto_sign_rsa(key, input)
|
|
80
|
-
verifyRsa(RsaPublicKey publicKey, Bytes input, Bytes signature) returns bool unless CryptoError:
|
|
81
|
-
unsafe:
|
|
82
|
-
return _aug_crypto_verify_rsa(publicKey, input, signature)
|
|
83
|
-
decodeBase64url(string input) returns Bytes unless CryptoError:
|
|
84
|
-
unsafe:
|
|
85
|
-
return _aug_crypto_decode_base64url(input)
|
|
86
|
-
equal(Bytes left, Bytes right) returns bool:
|
|
87
|
-
unsafe:
|
|
88
|
-
return _aug_crypto_equal(left, right)
|
|
89
|
-
exportRsa(RsaPublicKey publicKey) returns Tuple<Bytes,Bytes> unless CryptoError:
|
|
90
|
-
unsafe:
|
|
91
|
-
return _aug_crypto_export_rsa(publicKey)
|
|
92
|
-
importRsa(Bytes modulus, Bytes exponent) returns RsaPublicKey unless CryptoError:
|
|
93
|
-
unsafe:
|
|
94
|
-
return _aug_crypto_import_rsa(modulus, exponent)
|
|
95
|
-
passwordHash(Bytes password, Bytes salt, int iterations) returns Bytes unless CryptoError:
|
|
96
|
-
unsafe:
|
|
97
|
-
return _aug_crypto_password_hash(password, salt, iterations)
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
```aug [Braces]
|
|
101
|
-
/** Explicit permission for native cryptographic operations. Keys and bytes are immutable. */
|
|
102
|
-
capability Crypto {
|
|
103
|
-
/** Generate unpredictable bytes with the operating-system-backed GnuTLS RNG. */
|
|
104
|
-
random(int size) returns Bytes uses Crypto.random unless CryptoError
|
|
105
|
-
/** Hash the complete input using SHA-256. */
|
|
106
|
-
sha256(Bytes input) returns Bytes uses Crypto.sha256 unless CryptoError
|
|
107
|
-
/** Create a fresh 3072-bit RSA private key. Private material is opaque and scrubbed on reclamation. */
|
|
108
|
-
generateRsa() returns RsaPrivateKey uses Crypto.generateRsa unless CryptoError
|
|
109
|
-
/** Export the corresponding public key as an opaque immutable value. */
|
|
110
|
-
publicRsa(RsaPrivateKey key) returns RsaPublicKey uses Crypto.publicRsa unless CryptoError
|
|
111
|
-
/** Sign bytes using RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256). */
|
|
112
|
-
signRsa(RsaPrivateKey key, Bytes input) returns Bytes uses Crypto.signRsa unless CryptoError
|
|
113
|
-
/** Verify only RS256. Invalid signatures return false; invalid keys raise CryptoError. */
|
|
114
|
-
verifyRsa(RsaPublicKey publicKey, Bytes input, Bytes signature) returns bool uses Crypto.verifyRsa unless CryptoError
|
|
115
|
-
/** Decode canonical unpadded URL-safe base64, rejecting invalid characters and unused bits. */
|
|
116
|
-
decodeBase64url(string input) returns Bytes uses Crypto.decodeBase64url unless CryptoError
|
|
117
|
-
/** Compare bytes without early exit on their contents. Length remains observable. */
|
|
118
|
-
equal(Bytes left, Bytes right) returns bool uses Crypto.equal
|
|
119
|
-
/** Export unsigned big-endian modulus and exponent for an RSA JWK. */
|
|
120
|
-
exportRsa(RsaPublicKey publicKey) returns Tuple<Bytes,Bytes> uses Crypto.exportRsa unless CryptoError
|
|
121
|
-
/** Import canonical public RSA parameters. Keys must have 2048 to 8192 bits. */
|
|
122
|
-
importRsa(Bytes modulus, Bytes exponent) returns RsaPublicKey uses Crypto.importRsa unless CryptoError
|
|
123
|
-
/** PBKDF2-HMAC-SHA256, producing 32 bytes. Use a unique 16–64 byte salt; supported work factors are 100,000–2,000,000. */
|
|
124
|
-
passwordHash(Bytes password, Bytes salt, int iterations) returns Bytes uses Crypto.passwordHash unless CryptoError
|
|
125
|
-
}
|
|
126
|
-
extern C value _aug_crypto_random(int size) returns Bytes uses Crypto.random unless CryptoError
|
|
127
|
-
extern C value _aug_crypto_sha256(Bytes input) returns Bytes uses Crypto.sha256 unless CryptoError
|
|
128
|
-
extern C value _aug_crypto_generate_rsa() returns RsaPrivateKey uses Crypto.generateRsa unless CryptoError
|
|
129
|
-
extern C value _aug_crypto_public_rsa(RsaPrivateKey key) returns RsaPublicKey uses Crypto.publicRsa unless CryptoError
|
|
130
|
-
extern C value _aug_crypto_sign_rsa(RsaPrivateKey key, Bytes input) returns Bytes uses Crypto.signRsa unless CryptoError
|
|
131
|
-
extern C value _aug_crypto_verify_rsa(RsaPublicKey publicKey, Bytes input, Bytes signature) returns bool uses Crypto.verifyRsa unless CryptoError
|
|
132
|
-
extern C value _aug_crypto_decode_base64url(string input) returns Bytes uses Crypto.decodeBase64url unless CryptoError
|
|
133
|
-
extern C value _aug_crypto_equal(Bytes left, Bytes right) returns bool uses Crypto.equal
|
|
134
|
-
extern C value _aug_crypto_export_rsa(RsaPublicKey publicKey) returns Tuple<Bytes,Bytes> uses Crypto.exportRsa unless CryptoError
|
|
135
|
-
extern C value _aug_crypto_import_rsa(Bytes modulus, Bytes exponent) returns RsaPublicKey uses Crypto.importRsa unless CryptoError
|
|
136
|
-
extern C value _aug_crypto_password_hash(Bytes password, Bytes salt, int iterations) returns Bytes uses Crypto.passwordHash unless CryptoError
|
|
137
|
-
/** GnuTLS-backed capability adapter. Its constructor performs no I/O or key generation. */
|
|
138
|
-
GnuTlsCrypto() implements Crypto {
|
|
139
|
-
random(int size) returns Bytes unless CryptoError {
|
|
140
|
-
unsafe {
|
|
141
|
-
return _aug_crypto_random(size)
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
sha256(Bytes input) returns Bytes unless CryptoError {
|
|
145
|
-
unsafe {
|
|
146
|
-
return _aug_crypto_sha256(input)
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
generateRsa() returns RsaPrivateKey unless CryptoError {
|
|
150
|
-
unsafe {
|
|
151
|
-
return _aug_crypto_generate_rsa()
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
publicRsa(RsaPrivateKey key) returns RsaPublicKey unless CryptoError {
|
|
155
|
-
unsafe {
|
|
156
|
-
return _aug_crypto_public_rsa(key)
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
signRsa(RsaPrivateKey key, Bytes input) returns Bytes unless CryptoError {
|
|
160
|
-
unsafe {
|
|
161
|
-
return _aug_crypto_sign_rsa(key, input)
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
verifyRsa(RsaPublicKey publicKey, Bytes input, Bytes signature) returns bool unless CryptoError {
|
|
165
|
-
unsafe {
|
|
166
|
-
return _aug_crypto_verify_rsa(publicKey, input, signature)
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
decodeBase64url(string input) returns Bytes unless CryptoError {
|
|
170
|
-
unsafe {
|
|
171
|
-
return _aug_crypto_decode_base64url(input)
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
equal(Bytes left, Bytes right) returns bool {
|
|
175
|
-
unsafe {
|
|
176
|
-
return _aug_crypto_equal(left, right)
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
exportRsa(RsaPublicKey publicKey) returns Tuple<Bytes,Bytes> unless CryptoError {
|
|
180
|
-
unsafe {
|
|
181
|
-
return _aug_crypto_export_rsa(publicKey)
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
importRsa(Bytes modulus, Bytes exponent) returns RsaPublicKey unless CryptoError {
|
|
185
|
-
unsafe {
|
|
186
|
-
return _aug_crypto_import_rsa(modulus, exponent)
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
passwordHash(Bytes password, Bytes salt, int iterations) returns Bytes unless CryptoError {
|
|
190
|
-
unsafe {
|
|
191
|
-
return _aug_crypto_password_hash(password, salt, iterations)
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
:::
|
|
198
|
-
|
|
199
|
-
::::
|
|
200
|
-
|
|
201
|
-
:::: example-spec
|
|
202
|
-
|
|
203
|
-
## Compiled specification {#specification}
|
|
204
|
-
|
|
205
|
-
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
206
|
-
|
|
207
|
-
### In this file
|
|
208
|
-
|
|
209
|
-
- [`Crypto`](contracts.md#symbol-Crypto) is a capability interface.
|
|
210
|
-
- [`_aug_crypto_random`](contracts.md#symbol-_aug_crypto_random) is a function returning `Bytes`.
|
|
211
|
-
- [`_aug_crypto_sha256`](contracts.md#symbol-_aug_crypto_sha256) is a function returning `Bytes`.
|
|
212
|
-
- [`_aug_crypto_generate_rsa`](contracts.md#symbol-_aug_crypto_generate_rsa) is a function returning `RsaPrivateKey`.
|
|
213
|
-
- [`_aug_crypto_public_rsa`](contracts.md#symbol-_aug_crypto_public_rsa) is a function returning `RsaPublicKey`.
|
|
214
|
-
- [`_aug_crypto_sign_rsa`](contracts.md#symbol-_aug_crypto_sign_rsa) is a function returning `Bytes`.
|
|
215
|
-
- [`_aug_crypto_verify_rsa`](contracts.md#symbol-_aug_crypto_verify_rsa) is a function returning `bool`.
|
|
216
|
-
- [`_aug_crypto_decode_base64url`](contracts.md#symbol-_aug_crypto_decode_base64url) is a function returning `Bytes`.
|
|
217
|
-
- [`_aug_crypto_equal`](contracts.md#symbol-_aug_crypto_equal) is a function returning `bool`.
|
|
218
|
-
- [`_aug_crypto_export_rsa`](contracts.md#symbol-_aug_crypto_export_rsa) is a function returning `Tuple<Bytes,Bytes>`.
|
|
219
|
-
- [`_aug_crypto_import_rsa`](contracts.md#symbol-_aug_crypto_import_rsa) is a function returning `RsaPublicKey`.
|
|
220
|
-
- [`_aug_crypto_password_hash`](contracts.md#symbol-_aug_crypto_password_hash) is a function returning `Bytes`.
|
|
221
|
-
- [`GnuTlsCrypto`](contracts.md#symbol-GnuTlsCrypto) is a class implementing `Crypto`.
|
|
222
|
-
|
|
223
|
-
### `Crypto` {#symbol-Crypto}
|
|
224
|
-
|
|
225
|
-
[source](contracts.md#code)
|
|
226
|
-
|
|
227
|
-
Capability interface.
|
|
228
|
-
|
|
229
|
-
**Author documentation**
|
|
230
|
-
|
|
231
|
-
Explicit permission for native cryptographic operations. Keys and bytes are immutable.
|
|
232
|
-
|
|
233
|
-
#### `Crypto.random` {#symbol-Crypto.random}
|
|
234
|
-
|
|
235
|
-
[source](contracts.md#code)
|
|
236
|
-
|
|
237
|
-
**Inputs**
|
|
238
|
-
|
|
239
|
-
- `size` (`int`) — required labeled input.
|
|
240
|
-
|
|
241
|
-
Returns: `Bytes`.
|
|
242
|
-
|
|
243
|
-
Capabilities: [`Crypto.random`](contracts.md#symbol-Crypto.random).
|
|
244
|
-
|
|
245
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
246
|
-
|
|
247
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
248
|
-
|
|
249
|
-
**Author documentation**
|
|
250
|
-
|
|
251
|
-
Generate unpredictable bytes with the operating-system-backed GnuTLS RNG.
|
|
252
|
-
|
|
253
|
-
#### `Crypto.sha256` {#symbol-Crypto.sha256}
|
|
254
|
-
|
|
255
|
-
[source](contracts.md#code)
|
|
256
|
-
|
|
257
|
-
**Inputs**
|
|
258
|
-
|
|
259
|
-
- `input` (`Bytes`) — required labeled input.
|
|
260
|
-
|
|
261
|
-
Returns: `Bytes`.
|
|
262
|
-
|
|
263
|
-
Capabilities: [`Crypto.sha256`](contracts.md#symbol-Crypto.sha256).
|
|
264
|
-
|
|
265
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
266
|
-
|
|
267
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
268
|
-
|
|
269
|
-
**Author documentation**
|
|
270
|
-
|
|
271
|
-
Hash the complete input using SHA-256.
|
|
272
|
-
|
|
273
|
-
#### `Crypto.generateRsa` {#symbol-Crypto.generateRsa}
|
|
274
|
-
|
|
275
|
-
[source](contracts.md#code)
|
|
276
|
-
|
|
277
|
-
Returns: `RsaPrivateKey`.
|
|
278
|
-
|
|
279
|
-
Capabilities: [`Crypto.generateRsa`](contracts.md#symbol-Crypto.generateRsa).
|
|
280
|
-
|
|
281
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
282
|
-
|
|
283
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
284
|
-
|
|
285
|
-
**Author documentation**
|
|
286
|
-
|
|
287
|
-
Create a fresh 3072-bit RSA private key. Private material is opaque and scrubbed on reclamation.
|
|
288
|
-
|
|
289
|
-
#### `Crypto.publicRsa` {#symbol-Crypto.publicRsa}
|
|
290
|
-
|
|
291
|
-
[source](contracts.md#code)
|
|
292
|
-
|
|
293
|
-
**Inputs**
|
|
294
|
-
|
|
295
|
-
- `key` (`RsaPrivateKey`) — required labeled input.
|
|
296
|
-
|
|
297
|
-
Returns: `RsaPublicKey`.
|
|
298
|
-
|
|
299
|
-
Capabilities: [`Crypto.publicRsa`](contracts.md#symbol-Crypto.publicRsa).
|
|
300
|
-
|
|
301
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
302
|
-
|
|
303
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
304
|
-
|
|
305
|
-
**Author documentation**
|
|
306
|
-
|
|
307
|
-
Export the corresponding public key as an opaque immutable value.
|
|
308
|
-
|
|
309
|
-
#### `Crypto.signRsa` {#symbol-Crypto.signRsa}
|
|
310
|
-
|
|
311
|
-
[source](contracts.md#code)
|
|
312
|
-
|
|
313
|
-
**Inputs**
|
|
314
|
-
|
|
315
|
-
- `key` (`RsaPrivateKey`) — required labeled input.
|
|
316
|
-
- `input` (`Bytes`) — required labeled input.
|
|
317
|
-
|
|
318
|
-
Returns: `Bytes`.
|
|
319
|
-
|
|
320
|
-
Capabilities: [`Crypto.signRsa`](contracts.md#symbol-Crypto.signRsa).
|
|
321
|
-
|
|
322
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
323
|
-
|
|
324
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
325
|
-
|
|
326
|
-
**Author documentation**
|
|
327
|
-
|
|
328
|
-
Sign bytes using RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256).
|
|
329
|
-
|
|
330
|
-
#### `Crypto.verifyRsa` {#symbol-Crypto.verifyRsa}
|
|
331
|
-
|
|
332
|
-
[source](contracts.md#code)
|
|
333
|
-
|
|
334
|
-
**Inputs**
|
|
335
|
-
|
|
336
|
-
- `publicKey` (`RsaPublicKey`) — required labeled input.
|
|
337
|
-
- `input` (`Bytes`) — required labeled input.
|
|
338
|
-
- `signature` (`Bytes`) — required labeled input.
|
|
339
|
-
|
|
340
|
-
Returns: `bool`.
|
|
341
|
-
|
|
342
|
-
Capabilities: [`Crypto.verifyRsa`](contracts.md#symbol-Crypto.verifyRsa).
|
|
343
|
-
|
|
344
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
345
|
-
|
|
346
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
347
|
-
|
|
348
|
-
**Author documentation**
|
|
349
|
-
|
|
350
|
-
Verify only RS256. Invalid signatures return false; invalid keys raise CryptoError.
|
|
351
|
-
|
|
352
|
-
#### `Crypto.decodeBase64url` {#symbol-Crypto.decodeBase64url}
|
|
353
|
-
|
|
354
|
-
[source](contracts.md#code)
|
|
355
|
-
|
|
356
|
-
**Inputs**
|
|
357
|
-
|
|
358
|
-
- `input` (`string`) — required labeled input.
|
|
359
|
-
|
|
360
|
-
Returns: `Bytes`.
|
|
361
|
-
|
|
362
|
-
Capabilities: [`Crypto.decodeBase64url`](contracts.md#symbol-Crypto.decodeBase64url).
|
|
363
|
-
|
|
364
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
365
|
-
|
|
366
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
367
|
-
|
|
368
|
-
**Author documentation**
|
|
369
|
-
|
|
370
|
-
Decode canonical unpadded URL-safe base64, rejecting invalid characters and unused bits.
|
|
371
|
-
|
|
372
|
-
#### `Crypto.equal` {#symbol-Crypto.equal}
|
|
373
|
-
|
|
374
|
-
[source](contracts.md#code)
|
|
375
|
-
|
|
376
|
-
**Inputs**
|
|
377
|
-
|
|
378
|
-
- `left` (`Bytes`) — required labeled input.
|
|
379
|
-
- `right` (`Bytes`) — required labeled input.
|
|
380
|
-
|
|
381
|
-
Returns: `bool`.
|
|
382
|
-
|
|
383
|
-
Capabilities: [`Crypto.equal`](contracts.md#symbol-Crypto.equal).
|
|
384
|
-
|
|
385
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
386
|
-
|
|
387
|
-
**Author documentation**
|
|
388
|
-
|
|
389
|
-
Compare bytes without early exit on their contents. Length remains observable.
|
|
390
|
-
|
|
391
|
-
#### `Crypto.exportRsa` {#symbol-Crypto.exportRsa}
|
|
392
|
-
|
|
393
|
-
[source](contracts.md#code)
|
|
394
|
-
|
|
395
|
-
**Inputs**
|
|
396
|
-
|
|
397
|
-
- `publicKey` (`RsaPublicKey`) — required labeled input.
|
|
398
|
-
|
|
399
|
-
Returns: `Tuple<Bytes,Bytes>`.
|
|
400
|
-
|
|
401
|
-
Capabilities: [`Crypto.exportRsa`](contracts.md#symbol-Crypto.exportRsa).
|
|
402
|
-
|
|
403
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
404
|
-
|
|
405
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
406
|
-
|
|
407
|
-
**Author documentation**
|
|
408
|
-
|
|
409
|
-
Export unsigned big-endian modulus and exponent for an RSA JWK.
|
|
410
|
-
|
|
411
|
-
#### `Crypto.importRsa` {#symbol-Crypto.importRsa}
|
|
412
|
-
|
|
413
|
-
[source](contracts.md#code)
|
|
414
|
-
|
|
415
|
-
**Inputs**
|
|
416
|
-
|
|
417
|
-
- `modulus` (`Bytes`) — required labeled input.
|
|
418
|
-
- `exponent` (`Bytes`) — required labeled input.
|
|
419
|
-
|
|
420
|
-
Returns: `RsaPublicKey`.
|
|
421
|
-
|
|
422
|
-
Capabilities: [`Crypto.importRsa`](contracts.md#symbol-Crypto.importRsa).
|
|
423
|
-
|
|
424
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
425
|
-
|
|
426
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
427
|
-
|
|
428
|
-
**Author documentation**
|
|
429
|
-
|
|
430
|
-
Import canonical public RSA parameters. Keys must have 2048 to 8192 bits.
|
|
431
|
-
|
|
432
|
-
#### `Crypto.passwordHash` {#symbol-Crypto.passwordHash}
|
|
433
|
-
|
|
434
|
-
[source](contracts.md#code)
|
|
435
|
-
|
|
436
|
-
**Inputs**
|
|
437
|
-
|
|
438
|
-
- `password` (`Bytes`) — required labeled input.
|
|
439
|
-
- `salt` (`Bytes`) — required labeled input.
|
|
440
|
-
- `iterations` (`int`) — required labeled input.
|
|
441
|
-
|
|
442
|
-
Returns: `Bytes`.
|
|
443
|
-
|
|
444
|
-
Capabilities: [`Crypto.passwordHash`](contracts.md#symbol-Crypto.passwordHash).
|
|
445
|
-
|
|
446
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
447
|
-
|
|
448
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
449
|
-
|
|
450
|
-
**Author documentation**
|
|
451
|
-
|
|
452
|
-
PBKDF2-HMAC-SHA256, producing 32 bytes. Use a unique 16–64 byte salt; supported work factors are 100,000–2,000,000.
|
|
453
|
-
|
|
454
|
-
### `GnuTlsCrypto` {#symbol-GnuTlsCrypto}
|
|
455
|
-
|
|
456
|
-
[source](contracts.md#code)
|
|
457
|
-
|
|
458
|
-
Behavioral class.
|
|
459
|
-
|
|
460
|
-
Satisfies [`Crypto`](contracts.md#symbol-Crypto).
|
|
461
|
-
|
|
462
|
-
**Author documentation**
|
|
463
|
-
|
|
464
|
-
GnuTLS-backed capability adapter. Its constructor performs no I/O or key generation.
|
|
465
|
-
|
|
466
|
-
#### `GnuTlsCrypto.random` {#symbol-GnuTlsCrypto.random}
|
|
467
|
-
|
|
468
|
-
[source](contracts.md#code)
|
|
469
|
-
|
|
470
|
-
**Inputs**
|
|
471
|
-
|
|
472
|
-
- `size` (`int`) — required labeled input.
|
|
473
|
-
|
|
474
|
-
Returns: `Bytes`.
|
|
475
|
-
|
|
476
|
-
Capabilities: [`Crypto.random`](contracts.md#symbol-Crypto.random).
|
|
477
|
-
|
|
478
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
479
|
-
|
|
480
|
-
**What it does**
|
|
481
|
-
|
|
482
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
483
|
-
- Return call [`_aug_crypto_random`](contracts.md#symbol-_aug_crypto_random) with `size` = `size`.
|
|
484
|
-
|
|
485
|
-
**Author documentation**
|
|
486
|
-
|
|
487
|
-
Generate unpredictable bytes with the operating-system-backed GnuTLS RNG.
|
|
488
|
-
|
|
489
|
-
#### `GnuTlsCrypto.sha256` {#symbol-GnuTlsCrypto.sha256}
|
|
490
|
-
|
|
491
|
-
[source](contracts.md#code)
|
|
492
|
-
|
|
493
|
-
**Inputs**
|
|
494
|
-
|
|
495
|
-
- `input` (`Bytes`) — required labeled input.
|
|
496
|
-
|
|
497
|
-
Returns: `Bytes`.
|
|
498
|
-
|
|
499
|
-
Capabilities: [`Crypto.sha256`](contracts.md#symbol-Crypto.sha256).
|
|
500
|
-
|
|
501
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
502
|
-
|
|
503
|
-
**What it does**
|
|
504
|
-
|
|
505
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
506
|
-
- Return call [`_aug_crypto_sha256`](contracts.md#symbol-_aug_crypto_sha256) with `input` = `input`.
|
|
507
|
-
|
|
508
|
-
**Author documentation**
|
|
509
|
-
|
|
510
|
-
Hash the complete input using SHA-256.
|
|
511
|
-
|
|
512
|
-
#### `GnuTlsCrypto.generateRsa` {#symbol-GnuTlsCrypto.generateRsa}
|
|
513
|
-
|
|
514
|
-
[source](contracts.md#code)
|
|
515
|
-
|
|
516
|
-
Returns: `RsaPrivateKey`.
|
|
517
|
-
|
|
518
|
-
Capabilities: [`Crypto.generateRsa`](contracts.md#symbol-Crypto.generateRsa).
|
|
519
|
-
|
|
520
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
521
|
-
|
|
522
|
-
**What it does**
|
|
523
|
-
|
|
524
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
525
|
-
- Return call [`_aug_crypto_generate_rsa`](contracts.md#symbol-_aug_crypto_generate_rsa).
|
|
526
|
-
|
|
527
|
-
**Author documentation**
|
|
528
|
-
|
|
529
|
-
Create a fresh 3072-bit RSA private key. Private material is opaque and scrubbed on reclamation.
|
|
530
|
-
|
|
531
|
-
#### `GnuTlsCrypto.publicRsa` {#symbol-GnuTlsCrypto.publicRsa}
|
|
532
|
-
|
|
533
|
-
[source](contracts.md#code)
|
|
534
|
-
|
|
535
|
-
**Inputs**
|
|
536
|
-
|
|
537
|
-
- `key` (`RsaPrivateKey`) — required labeled input.
|
|
538
|
-
|
|
539
|
-
Returns: `RsaPublicKey`.
|
|
540
|
-
|
|
541
|
-
Capabilities: [`Crypto.publicRsa`](contracts.md#symbol-Crypto.publicRsa).
|
|
542
|
-
|
|
543
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
544
|
-
|
|
545
|
-
**What it does**
|
|
546
|
-
|
|
547
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
548
|
-
- Return call [`_aug_crypto_public_rsa`](contracts.md#symbol-_aug_crypto_public_rsa) with `key` = `key`.
|
|
549
|
-
|
|
550
|
-
**Author documentation**
|
|
551
|
-
|
|
552
|
-
Export the corresponding public key as an opaque immutable value.
|
|
553
|
-
|
|
554
|
-
#### `GnuTlsCrypto.signRsa` {#symbol-GnuTlsCrypto.signRsa}
|
|
555
|
-
|
|
556
|
-
[source](contracts.md#code)
|
|
557
|
-
|
|
558
|
-
**Inputs**
|
|
559
|
-
|
|
560
|
-
- `key` (`RsaPrivateKey`) — required labeled input.
|
|
561
|
-
- `input` (`Bytes`) — required labeled input.
|
|
562
|
-
|
|
563
|
-
Returns: `Bytes`.
|
|
564
|
-
|
|
565
|
-
Capabilities: [`Crypto.signRsa`](contracts.md#symbol-Crypto.signRsa).
|
|
566
|
-
|
|
567
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
568
|
-
|
|
569
|
-
**What it does**
|
|
570
|
-
|
|
571
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
572
|
-
- Return call [`_aug_crypto_sign_rsa`](contracts.md#symbol-_aug_crypto_sign_rsa) with `key` = `key`; `input` = `input`.
|
|
573
|
-
|
|
574
|
-
**Author documentation**
|
|
575
|
-
|
|
576
|
-
Sign bytes using RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256).
|
|
577
|
-
|
|
578
|
-
#### `GnuTlsCrypto.verifyRsa` {#symbol-GnuTlsCrypto.verifyRsa}
|
|
579
|
-
|
|
580
|
-
[source](contracts.md#code)
|
|
581
|
-
|
|
582
|
-
**Inputs**
|
|
583
|
-
|
|
584
|
-
- `publicKey` (`RsaPublicKey`) — required labeled input.
|
|
585
|
-
- `input` (`Bytes`) — required labeled input.
|
|
586
|
-
- `signature` (`Bytes`) — required labeled input.
|
|
587
|
-
|
|
588
|
-
Returns: `bool`.
|
|
589
|
-
|
|
590
|
-
Capabilities: [`Crypto.verifyRsa`](contracts.md#symbol-Crypto.verifyRsa).
|
|
591
|
-
|
|
592
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
593
|
-
|
|
594
|
-
**What it does**
|
|
595
|
-
|
|
596
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
597
|
-
- Return call [`_aug_crypto_verify_rsa`](contracts.md#symbol-_aug_crypto_verify_rsa) with `publicKey` = `publicKey`; `input` = `input`; `signature` = `signature`.
|
|
598
|
-
|
|
599
|
-
**Author documentation**
|
|
600
|
-
|
|
601
|
-
Verify only RS256. Invalid signatures return false; invalid keys raise CryptoError.
|
|
602
|
-
|
|
603
|
-
#### `GnuTlsCrypto.decodeBase64url` {#symbol-GnuTlsCrypto.decodeBase64url}
|
|
604
|
-
|
|
605
|
-
[source](contracts.md#code)
|
|
606
|
-
|
|
607
|
-
**Inputs**
|
|
608
|
-
|
|
609
|
-
- `input` (`string`) — required labeled input.
|
|
610
|
-
|
|
611
|
-
Returns: `Bytes`.
|
|
612
|
-
|
|
613
|
-
Capabilities: [`Crypto.decodeBase64url`](contracts.md#symbol-Crypto.decodeBase64url).
|
|
614
|
-
|
|
615
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
616
|
-
|
|
617
|
-
**What it does**
|
|
618
|
-
|
|
619
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
620
|
-
- Return call [`_aug_crypto_decode_base64url`](contracts.md#symbol-_aug_crypto_decode_base64url) with `input` = `input`.
|
|
621
|
-
|
|
622
|
-
**Author documentation**
|
|
623
|
-
|
|
624
|
-
Decode canonical unpadded URL-safe base64, rejecting invalid characters and unused bits.
|
|
625
|
-
|
|
626
|
-
#### `GnuTlsCrypto.equal` {#symbol-GnuTlsCrypto.equal}
|
|
627
|
-
|
|
628
|
-
[source](contracts.md#code)
|
|
629
|
-
|
|
630
|
-
**Inputs**
|
|
631
|
-
|
|
632
|
-
- `left` (`Bytes`) — required labeled input.
|
|
633
|
-
- `right` (`Bytes`) — required labeled input.
|
|
634
|
-
|
|
635
|
-
Returns: `bool`.
|
|
636
|
-
|
|
637
|
-
Capabilities: [`Crypto.equal`](contracts.md#symbol-Crypto.equal).
|
|
638
|
-
|
|
639
|
-
**What it does**
|
|
640
|
-
|
|
641
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
642
|
-
- Return call [`_aug_crypto_equal`](contracts.md#symbol-_aug_crypto_equal) with `left` = `left`; `right` = `right`.
|
|
643
|
-
|
|
644
|
-
**Author documentation**
|
|
645
|
-
|
|
646
|
-
Compare bytes without early exit on their contents. Length remains observable.
|
|
647
|
-
|
|
648
|
-
#### `GnuTlsCrypto.exportRsa` {#symbol-GnuTlsCrypto.exportRsa}
|
|
649
|
-
|
|
650
|
-
[source](contracts.md#code)
|
|
651
|
-
|
|
652
|
-
**Inputs**
|
|
653
|
-
|
|
654
|
-
- `publicKey` (`RsaPublicKey`) — required labeled input.
|
|
655
|
-
|
|
656
|
-
Returns: `Tuple<Bytes,Bytes>`.
|
|
657
|
-
|
|
658
|
-
Capabilities: [`Crypto.exportRsa`](contracts.md#symbol-Crypto.exportRsa).
|
|
659
|
-
|
|
660
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
661
|
-
|
|
662
|
-
**What it does**
|
|
663
|
-
|
|
664
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
665
|
-
- Return call [`_aug_crypto_export_rsa`](contracts.md#symbol-_aug_crypto_export_rsa) with `publicKey` = `publicKey`.
|
|
666
|
-
|
|
667
|
-
**Author documentation**
|
|
668
|
-
|
|
669
|
-
Export unsigned big-endian modulus and exponent for an RSA JWK.
|
|
670
|
-
|
|
671
|
-
#### `GnuTlsCrypto.importRsa` {#symbol-GnuTlsCrypto.importRsa}
|
|
672
|
-
|
|
673
|
-
[source](contracts.md#code)
|
|
674
|
-
|
|
675
|
-
**Inputs**
|
|
676
|
-
|
|
677
|
-
- `modulus` (`Bytes`) — required labeled input.
|
|
678
|
-
- `exponent` (`Bytes`) — required labeled input.
|
|
679
|
-
|
|
680
|
-
Returns: `RsaPublicKey`.
|
|
681
|
-
|
|
682
|
-
Capabilities: [`Crypto.importRsa`](contracts.md#symbol-Crypto.importRsa).
|
|
683
|
-
|
|
684
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
685
|
-
|
|
686
|
-
**What it does**
|
|
687
|
-
|
|
688
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
689
|
-
- Return call [`_aug_crypto_import_rsa`](contracts.md#symbol-_aug_crypto_import_rsa) with `modulus` = `modulus`; `exponent` = `exponent`.
|
|
690
|
-
|
|
691
|
-
**Author documentation**
|
|
692
|
-
|
|
693
|
-
Import canonical public RSA parameters. Keys must have 2048 to 8192 bits.
|
|
694
|
-
|
|
695
|
-
#### `GnuTlsCrypto.passwordHash` {#symbol-GnuTlsCrypto.passwordHash}
|
|
696
|
-
|
|
697
|
-
[source](contracts.md#code)
|
|
698
|
-
|
|
699
|
-
**Inputs**
|
|
700
|
-
|
|
701
|
-
- `password` (`Bytes`) — required labeled input.
|
|
702
|
-
- `salt` (`Bytes`) — required labeled input.
|
|
703
|
-
- `iterations` (`int`) — required labeled input.
|
|
704
|
-
|
|
705
|
-
Returns: `Bytes`.
|
|
706
|
-
|
|
707
|
-
Capabilities: [`Crypto.passwordHash`](contracts.md#symbol-Crypto.passwordHash).
|
|
708
|
-
|
|
709
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
710
|
-
|
|
711
|
-
**What it does**
|
|
712
|
-
|
|
713
|
-
- Enter an unsafe boundary. Native calls use their declared contracts; their foreign implementation is outside this specification:
|
|
714
|
-
- Return call [`_aug_crypto_password_hash`](contracts.md#symbol-_aug_crypto_password_hash) with `password` = `password`; `salt` = `salt`; `iterations` = `iterations`.
|
|
715
|
-
|
|
716
|
-
**Author documentation**
|
|
717
|
-
|
|
718
|
-
PBKDF2-HMAC-SHA256, producing 32 bytes. Use a unique 16–64 byte salt; supported work factors are 100,000–2,000,000.
|
|
719
|
-
|
|
720
|
-
### `_aug_crypto_random` {#symbol-_aug_crypto_random}
|
|
721
|
-
|
|
722
|
-
[source](contracts.md#code)
|
|
723
|
-
|
|
724
|
-
Private to its defining scope.
|
|
725
|
-
|
|
726
|
-
**Inputs**
|
|
727
|
-
|
|
728
|
-
- `size` (`int`) — required labeled input.
|
|
729
|
-
|
|
730
|
-
Returns: `Bytes`.
|
|
731
|
-
|
|
732
|
-
Capabilities: [`Crypto.random`](contracts.md#symbol-Crypto.random).
|
|
733
|
-
|
|
734
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
735
|
-
|
|
736
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
737
|
-
|
|
738
|
-
### `_aug_crypto_sha256` {#symbol-_aug_crypto_sha256}
|
|
739
|
-
|
|
740
|
-
[source](contracts.md#code)
|
|
741
|
-
|
|
742
|
-
Private to its defining scope.
|
|
743
|
-
|
|
744
|
-
**Inputs**
|
|
745
|
-
|
|
746
|
-
- `input` (`Bytes`) — required labeled input.
|
|
747
|
-
|
|
748
|
-
Returns: `Bytes`.
|
|
749
|
-
|
|
750
|
-
Capabilities: [`Crypto.sha256`](contracts.md#symbol-Crypto.sha256).
|
|
751
|
-
|
|
752
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
753
|
-
|
|
754
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
755
|
-
|
|
756
|
-
### `_aug_crypto_generate_rsa` {#symbol-_aug_crypto_generate_rsa}
|
|
757
|
-
|
|
758
|
-
[source](contracts.md#code)
|
|
759
|
-
|
|
760
|
-
Private to its defining scope.
|
|
761
|
-
|
|
762
|
-
Returns: `RsaPrivateKey`.
|
|
763
|
-
|
|
764
|
-
Capabilities: [`Crypto.generateRsa`](contracts.md#symbol-Crypto.generateRsa).
|
|
765
|
-
|
|
766
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
767
|
-
|
|
768
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
769
|
-
|
|
770
|
-
### `_aug_crypto_public_rsa` {#symbol-_aug_crypto_public_rsa}
|
|
771
|
-
|
|
772
|
-
[source](contracts.md#code)
|
|
773
|
-
|
|
774
|
-
Private to its defining scope.
|
|
775
|
-
|
|
776
|
-
**Inputs**
|
|
777
|
-
|
|
778
|
-
- `key` (`RsaPrivateKey`) — required labeled input.
|
|
779
|
-
|
|
780
|
-
Returns: `RsaPublicKey`.
|
|
781
|
-
|
|
782
|
-
Capabilities: [`Crypto.publicRsa`](contracts.md#symbol-Crypto.publicRsa).
|
|
783
|
-
|
|
784
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
785
|
-
|
|
786
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
787
|
-
|
|
788
|
-
### `_aug_crypto_sign_rsa` {#symbol-_aug_crypto_sign_rsa}
|
|
789
|
-
|
|
790
|
-
[source](contracts.md#code)
|
|
791
|
-
|
|
792
|
-
Private to its defining scope.
|
|
793
|
-
|
|
794
|
-
**Inputs**
|
|
795
|
-
|
|
796
|
-
- `key` (`RsaPrivateKey`) — required labeled input.
|
|
797
|
-
- `input` (`Bytes`) — required labeled input.
|
|
798
|
-
|
|
799
|
-
Returns: `Bytes`.
|
|
800
|
-
|
|
801
|
-
Capabilities: [`Crypto.signRsa`](contracts.md#symbol-Crypto.signRsa).
|
|
802
|
-
|
|
803
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
804
|
-
|
|
805
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
806
|
-
|
|
807
|
-
### `_aug_crypto_verify_rsa` {#symbol-_aug_crypto_verify_rsa}
|
|
808
|
-
|
|
809
|
-
[source](contracts.md#code)
|
|
810
|
-
|
|
811
|
-
Private to its defining scope.
|
|
812
|
-
|
|
813
|
-
**Inputs**
|
|
814
|
-
|
|
815
|
-
- `publicKey` (`RsaPublicKey`) — required labeled input.
|
|
816
|
-
- `input` (`Bytes`) — required labeled input.
|
|
817
|
-
- `signature` (`Bytes`) — required labeled input.
|
|
818
|
-
|
|
819
|
-
Returns: `bool`.
|
|
820
|
-
|
|
821
|
-
Capabilities: [`Crypto.verifyRsa`](contracts.md#symbol-Crypto.verifyRsa).
|
|
822
|
-
|
|
823
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
824
|
-
|
|
825
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
826
|
-
|
|
827
|
-
### `_aug_crypto_decode_base64url` {#symbol-_aug_crypto_decode_base64url}
|
|
828
|
-
|
|
829
|
-
[source](contracts.md#code)
|
|
830
|
-
|
|
831
|
-
Private to its defining scope.
|
|
832
|
-
|
|
833
|
-
**Inputs**
|
|
834
|
-
|
|
835
|
-
- `input` (`string`) — required labeled input.
|
|
836
|
-
|
|
837
|
-
Returns: `Bytes`.
|
|
838
|
-
|
|
839
|
-
Capabilities: [`Crypto.decodeBase64url`](contracts.md#symbol-Crypto.decodeBase64url).
|
|
840
|
-
|
|
841
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
842
|
-
|
|
843
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
844
|
-
|
|
845
|
-
### `_aug_crypto_equal` {#symbol-_aug_crypto_equal}
|
|
846
|
-
|
|
847
|
-
[source](contracts.md#code)
|
|
848
|
-
|
|
849
|
-
Private to its defining scope.
|
|
850
|
-
|
|
851
|
-
**Inputs**
|
|
852
|
-
|
|
853
|
-
- `left` (`Bytes`) — required labeled input.
|
|
854
|
-
- `right` (`Bytes`) — required labeled input.
|
|
855
|
-
|
|
856
|
-
Returns: `bool`.
|
|
857
|
-
|
|
858
|
-
Capabilities: [`Crypto.equal`](contracts.md#symbol-Crypto.equal).
|
|
859
|
-
|
|
860
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
861
|
-
|
|
862
|
-
### `_aug_crypto_export_rsa` {#symbol-_aug_crypto_export_rsa}
|
|
863
|
-
|
|
864
|
-
[source](contracts.md#code)
|
|
865
|
-
|
|
866
|
-
Private to its defining scope.
|
|
867
|
-
|
|
868
|
-
**Inputs**
|
|
869
|
-
|
|
870
|
-
- `publicKey` (`RsaPublicKey`) — required labeled input.
|
|
871
|
-
|
|
872
|
-
Returns: `Tuple<Bytes,Bytes>`.
|
|
873
|
-
|
|
874
|
-
Capabilities: [`Crypto.exportRsa`](contracts.md#symbol-Crypto.exportRsa).
|
|
875
|
-
|
|
876
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
877
|
-
|
|
878
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
879
|
-
|
|
880
|
-
### `_aug_crypto_import_rsa` {#symbol-_aug_crypto_import_rsa}
|
|
881
|
-
|
|
882
|
-
[source](contracts.md#code)
|
|
883
|
-
|
|
884
|
-
Private to its defining scope.
|
|
885
|
-
|
|
886
|
-
**Inputs**
|
|
887
|
-
|
|
888
|
-
- `modulus` (`Bytes`) — required labeled input.
|
|
889
|
-
- `exponent` (`Bytes`) — required labeled input.
|
|
890
|
-
|
|
891
|
-
Returns: `RsaPublicKey`.
|
|
892
|
-
|
|
893
|
-
Capabilities: [`Crypto.importRsa`](contracts.md#symbol-Crypto.importRsa).
|
|
894
|
-
|
|
895
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
896
|
-
|
|
897
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
898
|
-
|
|
899
|
-
### `_aug_crypto_password_hash` {#symbol-_aug_crypto_password_hash}
|
|
900
|
-
|
|
901
|
-
[source](contracts.md#code)
|
|
902
|
-
|
|
903
|
-
Private to its defining scope.
|
|
904
|
-
|
|
905
|
-
**Inputs**
|
|
906
|
-
|
|
907
|
-
- `password` (`Bytes`) — required labeled input.
|
|
908
|
-
- `salt` (`Bytes`) — required labeled input.
|
|
909
|
-
- `iterations` (`int`) — required labeled input.
|
|
910
|
-
|
|
911
|
-
Returns: `Bytes`.
|
|
912
|
-
|
|
913
|
-
Capabilities: [`Crypto.passwordHash`](contracts.md#symbol-Crypto.passwordHash).
|
|
914
|
-
|
|
915
|
-
Can fail with `CryptoError`. Callers must catch or propagate these errors.
|
|
916
|
-
|
|
917
|
-
Native C operation. Its declared inputs, result, effects, and errors are the visible contract. The C implementation is outside this specification.
|
|
918
|
-
|
|
919
|
-
### Shared language rules
|
|
920
|
-
|
|
921
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
922
|
-
|
|
923
|
-
::::
|
|
924
|
-
|
|
925
|
-
:::::
|