diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml
index adac357ef..a1eb120ec 100644
--- a/.github/workflows/checks.yaml
+++ b/.github/workflows/checks.yaml
@@ -63,9 +63,9 @@ jobs:
if: env.IS_RELEASE_BRANCH == 'true'
working-directory: ${{ matrix.directory }}
- name: golangci-lint
- uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8
+ uses: golangci/golangci-lint-action@2226d7cb06a077cd73e56eedd38eecad18e5d837
with:
- version: v1.61
+ version: v1.64
working-directory: ${{ matrix.directory }}
skip-cache: true
args: --out-format=colored-line-number
diff --git a/.github/workflows/nightly-build.yaml b/.github/workflows/nightly-build.yaml
index 1f25666c1..8203134b9 100644
--- a/.github/workflows/nightly-build.yaml
+++ b/.github/workflows/nightly-build.yaml
@@ -39,7 +39,7 @@ jobs:
password: ${{ steps.gcp-auth.outputs.access_token }}
- id: docker_meta
- uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
+ uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96
with:
images: ${{ secrets.DOCKER_REPO }}
tags: |
diff --git a/.github/workflows/release-build.yaml b/.github/workflows/release-build.yaml
index 4463498a4..3b937198f 100644
--- a/.github/workflows/release-build.yaml
+++ b/.github/workflows/release-build.yaml
@@ -45,7 +45,7 @@ jobs:
password: ${{ steps.gcp-auth.outputs.access_token }}
- id: docker_meta
- uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
+ uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96
with:
images: ${{ secrets.DOCKER_REPO }}
tags: |
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index b4d1bd25a..c4b3cf7ee 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -17,7 +17,7 @@ jobs:
steps:
- name: Generate a token
id: generate_token
- uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
+ uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5
with:
app-id: "${{ secrets.APP_ID }}"
private-key: "${{ secrets.AUTOMATION_KEY }}"
@@ -30,7 +30,7 @@ jobs:
- id: todo
if: fromJson(steps.release-please.outputs.releases_created)
run: |
- for x in ${{join(fromJson(steps.release-please.outputs.paths_released), ' ')}}; do
+ <<<"$RELEASED_PATHS" jq -r '.[]'| while IFS= read -r x; do
case "$x" in
lib/ocrypto)
echo "TO_UPDATE=['examples','sdk','service']">>"$GITHUB_OUTPUT"
@@ -60,7 +60,8 @@ jobs:
;;
esac
done
-
+ env:
+ RELEASED_PATHS: ${{ steps.release-please.outputs.paths_released }}
update-go-mods:
runs-on: ubuntu-latest
needs:
@@ -78,15 +79,15 @@ jobs:
- run: |
git checkout -b update-go-mods-for-${{matrix.path}}
git push -f -u origin update-go-mods-for-${{matrix.path}}
- cd ${{matrix.path}}
- for x in ${{join(fromJson(needs.release-please.outputs.paths_released), ' ')}}; do
- export pkg=github.com/opentdf/platform/${x}
+ cd ${{matrix.path}} || exit 1
+ <<<"$RELEASED_PATHS" jq -r '.[]'| while IFS= read -r x; do
+ export pkg="github.com/opentdf/platform/${x}"
if go mod edit --json | jq -e '.Replace[] | select(.Old.Path == env.pkg)'; then
- go mod edit --dropreplace=$pkg
+ go mod edit --dropreplace="$pkg"
fi
echo "Should we update [${pkg}] in [${{ matrix.path }}]?"
if go mod edit --json | jq -e '.Require[] | select(.Path == env.pkg)'; then
- ver=$(jq -r .\[\"${x}\"\] < "${GITHUB_WORKSPACE}/.release-please-manifest.json")
+ ver="$(jq -r --arg x "$x" '.[$x]' <"${GITHUB_WORKSPACE}"/.release-please-manifest.json)"
echo "go get ${pkg}@v${ver}"
go get "${pkg}@v${ver}"
fi
@@ -99,6 +100,7 @@ jobs:
git diff
env:
GONOSUMDB: github.com/opentdf/platform/${{join(fromJson(needs.release-please.outputs.paths_released), ',github.com/opentdf/platform/')}}
+ RELEASED_PATHS: ${{ needs.release-please.outputs.paths_released }}
- uses: planetscale/ghcommit-action@d4176bfacef926cc2db351eab20398dfc2f593b5
with:
commit_message: "fix(core): Autobump ${{ matrix.path }}"
@@ -108,7 +110,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate a token
id: generate_token
- uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
+ uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5
with:
app-id: "${{ secrets.APP_ID }}"
private-key: "${{ secrets.AUTOMATION_KEY }}"
diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml
index 9fe2a94a5..a29690528 100644
--- a/.github/workflows/stale.yaml
+++ b/.github/workflows/stale.yaml
@@ -10,7 +10,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e
+ - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639
with:
days-before-stale: 120
# negative number means they will never be closed automatically [https://github.com/actions/stale#days-before-close]
diff --git a/.github/workflows/traffic.yaml b/.github/workflows/traffic.yaml
index be8d858e2..b666f5c75 100644
--- a/.github/workflows/traffic.yaml
+++ b/.github/workflows/traffic.yaml
@@ -13,18 +13,17 @@ jobs:
matrix:
repo-values:
- {repo: platform, event: ""}
- - {repo: otdfctl, event: backend-}
- - {repo: spec, event: frontend-}
+ - {repo: otdfctl, event: otdfctl-}
+ - {repo: spec, event: spec-}
- {repo: tests, event: tests-}
- - {repo: client-web, event: clientweb-}
- - {repo: client-cpp, event: cpp-sdk-}
+ - {repo: web-sdk, event: web-sdk-}
- {repo: java-sdk, event: java-sdk-}
- {repo: charts, event: charts-}
- {repo: nifi, event: nifi-}
steps:
- name: Generate a token
id: generate_token
- uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
+ uses: actions/create-github-app-token@0d564482f06ca65fa9e77e2510873638c82206f2 # v1.11.5
with:
app-id: "${{ secrets.APP_ID }}"
private-key: "${{ secrets.AUTOMATION_KEY }}"
diff --git a/.golangci.yaml b/.golangci.yaml
index dac566eb3..33586547b 100644
--- a/.golangci.yaml
+++ b/.golangci.yaml
@@ -9,8 +9,6 @@ linters-settings:
# Such cases aren't reported by default.
# Default: false
check-type-assertions: true
- # https://github.com/golangci/golangci-lint/issues/4743
- ignore: ''
exhaustive:
# Program elements to check for exhaustiveness.
@@ -138,7 +136,7 @@ linters:
- errname # checks that sentinel errors are prefixed with the Err and error types are suffixed with the Error
- errorlint # finds code that will cause problems with the error wrapping scheme introduced in Go 1.13
- exhaustive # checks exhaustiveness of enum switch statements
- # - exportloopref # checks for pointers to enclosing loop variables Since Go1.22 (loopvar) this linter is no longer relevant. Replaced by copyloopvar."
+ - exptostd # Added in 1.63. Checks for usages of the deprecated experimental packages
# - fatcontext
- forbidigo # forbids identifiers
- forcetypeassert # finds forced type assertions
@@ -173,7 +171,6 @@ linters:
# - spancheck # checks for incorrect usage of opentracing.Span # Added in golangci-lint 1.56
- sqlclosecheck # checks that sql.Rows and sql.Stmt are closed
- stylecheck # is a replacement for golint
- - tenv # detects using os.Setenv instead of t.Setenv since Go1.17
- testableexamples # checks if examples are testable (have an expected output)
- testifylint
#- testpackage # makes you use a separate _test package
@@ -181,6 +178,7 @@ linters:
- unconvert # removes unnecessary type conversions
- unparam # reports unused function parameters
- usestdlibvars # detects the possibility to use variables/constants from the Go standard library
+ - usetesting # Replaced tenv in golangci-lint 1.63
- wastedassign # finds wasted assignment statements
- whitespace # detects leading and trailing whitespace
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index af353cb6c..67170cd6d 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,8 +1,8 @@
{
"lib/fixtures": "0.2.10",
- "lib/ocrypto": "0.1.7",
+ "lib/ocrypto": "0.1.8",
"lib/flattening": "0.1.3",
- "protocol/go": "0.2.25",
- "sdk": "0.3.26",
- "service": "0.4.38"
+ "protocol/go": "0.2.28",
+ "sdk": "0.3.28",
+ "service": "0.4.39"
}
diff --git a/Makefile b/Makefile
index d4bc7b530..29f494b82 100644
--- a/Makefile
+++ b/Makefile
@@ -17,9 +17,9 @@ all: toolcheck clean build lint license test
toolcheck:
@echo "Checking for required tools..."
@which buf > /dev/null || (echo "buf not found, please install it from https://docs.buf.build/installation" && exit 1)
- @which golangci-lint > /dev/null || (echo "golangci-lint not found, run 'go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.61.0'" && exit 1)
+ @which golangci-lint > /dev/null || (echo "golangci-lint not found, run 'go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.5'" && exit 1)
@which protoc-gen-doc > /dev/null || (echo "protoc-gen-doc not found, run 'go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v1.5.1'" && exit 1)
- @golangci-lint --version | grep "version v\?1.6[123]" > /dev/null || (echo "golangci-lint version must be v1.61 or later [$$(golangci-lint --version)]" && exit 1)
+ @golangci-lint --version | grep "version v\?1.6[456]" > /dev/null || (echo "golangci-lint version must be v1.64 or later [$$(golangci-lint --version)]" && exit 1)
@which goimports >/dev/null || (echo "goimports not found, run 'go install golang.org/x/tools/cmd/goimports@latest'")
fix: tidy fmt
@@ -45,8 +45,12 @@ proto-lint:
fi)
go-lint:
- for m in $(HAND_MODS); do (cd $$m && golangci-lint run $(LINT_OPTIONS) --path-prefix=$$m) || exit 1; done
-
+ status=0; \
+ for m in $(HAND_MODS); do \
+ echo "Linting module: $$m"; \
+ (cd "$$m" && golangci-lint run $(LINT_OPTIONS) --path-prefix="$$m" ) || status=1; \
+ done; \
+ exit $$status
proto-generate:
rm -rf protocol/go/[a-fh-z]* docs/grpc docs/openapi
buf generate service
diff --git a/README.md b/README.md
index b7fc62bc6..f158243d8 100644
--- a/README.md
+++ b/README.md
@@ -24,19 +24,19 @@
- [Podman Compose](https://github.com/containers/podman-compose)
- [Buf](https://buf.build/docs/ecosystem/cli-overview) is used for managing protobuf files.
Required for developing services.
+- [golangci-lint](https://golangci-lint.run/) is used for ensuring good coding practices.
+ Use `make go-lint` to run it before submitting a PR
On macOS, these can be installed with [brew](https://docs.brew.sh/Installation)
```sh
-brew install buf go
+brew install buf go golangci-lint
```
#### Optional tools
- _Optional_ [Air](https://github.com/cosmtrek/air) is used for hot-reload development
- install with `go install github.com/cosmtrek/air@latest`
-- _Optional_ [golangci-lint](https://golangci-lint.run/) is used for ensuring good coding practices
- - install with `brew install golangci-lint`
- _Optional_ [grpcurl](https://github.com/fullstorydev/grpcurl) is used for testing gRPC services
- install with `brew install grpcurl`
- _Optional_ [openssl](https://www.openssl.org/) is used for generating certificates
diff --git a/buf.lock b/buf.lock
index c8ac0410d..10d51eb79 100644
--- a/buf.lock
+++ b/buf.lock
@@ -2,11 +2,11 @@
version: v2
deps:
- name: buf.build/bufbuild/protovalidate
- commit: e097f827e65240ac9fd4b1158849a8fc
- digest: b5:beda657a164abf9d1bac222e352f14d9a4a8c913ccdb7e5c3dfeda097690f60e8edb27b518c2d8e73b70aecb6ac47fdc3654a1f62b9e09c3566cd4e620628cfd
+ commit: 63bb56e204954558946a641ef0d68910
+ digest: b5:ec5661b2855484eca2043fe61d27eb22673ab926ccd0e849531752eb17b08402fae1382705cee7f7b42d4d9ec56aff72bba7ec6835902cf6f86323c9ac682d16
- name: buf.build/googleapis/googleapis
- commit: a86849a25cc04f4dbe9b15ddddfbc488
- digest: b5:a77a2082c596ee6800a23d8cecd021d316eb10565d6cb94532f2d7c567fe6c9a177b5bb123b51a3acb4f1f18d4f54a6da883afcb682919a137a8a37c020509a2
+ commit: 83c0f6c19b2f4ea0b0fd84a80e753659
+ digest: b5:e9d077ad9d2eaa08a056108a15292a69548880d3a935781c498f2e591e60e531e49e1f5fc1d7356e5f989d3a8540e9885a02df18cb0cecc4ffa439fa4438a09e
- name: buf.build/grpc-ecosystem/grpc-gateway
- commit: 3f42134f4c564983838425bc43c7a65f
- digest: b5:291b947d8ac09492517557e4e72e294788cb8201afc7d0df7bda80fa10931adb60d4d669208a7696bf24f1ecb2a33a16d4c1e766e6f31809248b00343119569b
+ commit: 4c5ba75caaf84e928b7137ae5c18c26a
+ digest: b5:c113e62fb3b29289af785866cae062b55ec8ae19ab3f08f3004098928fbca657730a06810b2012951294326b95669547194fa84476b9e9b688d4f8bf77a0691d
diff --git a/docs/Contributing.md b/docs/Contributing.md
index ca5bf24fa..9afb89971 100644
--- a/docs/Contributing.md
+++ b/docs/Contributing.md
@@ -51,4 +51,5 @@ Note: When `exportToJaeger` is false, traces will be written to local files inst
## Advice for Code Contributors
+* Make sure to run our linters with `make lint`
* Follow our [Error Guidelines](./Contributing-errors.md)
diff --git a/docs/grpc/index.html b/docs/grpc/index.html
index 309ca58dd..bffbf1f5d 100644
--- a/docs/grpc/index.html
+++ b/docs/grpc/index.html
@@ -3557,6 +3557,14 @@
KeyAccess
header is only used for NanoTDFs |
+
+ ephemeral_public_key |
+ string |
+ |
+ For wrapping with an ECDH derived key, when type=ec-wrapped.
+Should be a PEM-encoded PKCS#8 (asn.1) value. |
+
+
@@ -3964,10 +3972,62 @@ UnsignedRewrapRequest
|
+
+ key_access |
+ KeyAccess |
+ |
+ Deprecated. Used for legacy non-bulk requests |
+
+
+
+ policy |
+ string |
+ |
+ Deprecated. Used for legacy non-bulk requests |
+
+
+
+ algorithm |
+ string |
+ |
+ Deprecated. Used for legacy non-bulk requests |
+
+
+
+
+ Fields with deprecated option
+
+
+
+ Name |
+ Option |
+
+
+
+
+
+ key_access |
+ true |
+
+
+
+ policy |
+ true |
+
+
+
+ algorithm |
+ true |
+
+
+
+
+
+
@@ -5043,13 +5103,48 @@ GetAttributeRequest
id |
string |
|
- Required |
+ Deprecated. Deprecated |
+
+
+
+ attribute_id |
+ string |
+ |
+ option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field |
+
+
+
+ fqn |
+ string |
+ |
+ |
+
+
+ Fields with deprecated option
+
+
+
+ Name |
+ Option |
+
+
+
+
+
+ id |
+ true |
+
+
+
+
+
+
@@ -5091,13 +5186,48 @@ GetAttributeValueRequest
id
string |
|
- Required |
+ Deprecated. Deprecated |
+
+
+
+ value_id |
+ string |
+ |
+ option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field |
+
+
+
+ fqn |
+ string |
+ |
+ |
+
+
+ Fields with deprecated option
+
+
+
+ Name |
+ Option |
+
+
+
+
+
+ id |
+ true |
+
+
+
+
+
+
@@ -6422,13 +6552,55 @@ GetKeyAccessServerRequest<
id |
string |
|
- Required |
+ Deprecated. Deprecated |
+
+
+
+ kas_id |
+ string |
+ |
+ option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field |
+
+
+
+ name |
+ string |
+ |
+ |
+
+
+
+ uri |
+ string |
+ |
+ |
+
+
+ Fields with deprecated option
+
+
+
+ Name |
+ Option |
+
+
+
+
+
+ id |
+ true |
+
+
+
+
+
+
@@ -6755,13 +6927,21 @@ ListPublicKeyMappingRequ
kas_id |
string |
|
- Optional
-
-Future filter by fields
-// Optional
-string kas_name = 2;
-// Optional
-string kas_uri = 3; |
+ Optional |
+
+
+
+ kas_name |
+ string |
+ |
+ Optional |
+
+
+
+ kas_uri |
+ string |
+ |
+ Optional |
@@ -6951,13 +7131,21 @@ ListPublicKeysRequest
kas_id |
string |
|
- Optional
-
-Future filter by fields
-// Optional
-string kas_name = 2;
-// Optional
-string kas_uri = 3; |
+ Optional |
+
+
+
+ kas_name |
+ string |
+ |
+ Optional |
+
+
+
+ kas_uri |
+ string |
+ |
+ Optional |
@@ -7574,13 +7762,48 @@ GetNamespaceRequest
id |
string |
|
- Required |
+ Deprecated. Deprecated |
+
+
+
+ namespace_id |
+ string |
+ |
+ option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field |
+
+
+
+ fqn |
+ string |
+ |
+ |
+
+
+ Fields with deprecated option
+
+
+
+ Name |
+ Option |
+
+
+
+
+
+ id |
+ true |
+
+
+
+
+
+
diff --git a/docs/openapi/policy/attributes/attributes.swagger.json b/docs/openapi/policy/attributes/attributes.swagger.json
index 0027fda4e..d9c4593a2 100644
--- a/docs/openapi/policy/attributes/attributes.swagger.json
+++ b/docs/openapi/policy/attributes/attributes.swagger.json
@@ -249,10 +249,23 @@
"parameters": [
{
"name": "id",
- "description": "Required",
+ "description": "Deprecated",
"in": "path",
"required": true,
"type": "string"
+ },
+ {
+ "name": "valueId",
+ "description": "option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "fqn",
+ "in": "query",
+ "required": false,
+ "type": "string"
}
],
"tags": [
@@ -543,10 +556,23 @@
"parameters": [
{
"name": "id",
- "description": "Required",
+ "description": "Deprecated",
"in": "path",
"required": true,
"type": "string"
+ },
+ {
+ "name": "attributeId",
+ "description": "option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "fqn",
+ "in": "query",
+ "required": false,
+ "type": "string"
}
],
"tags": [
diff --git a/docs/openapi/policy/kasregistry/key_access_server_registry.swagger.json b/docs/openapi/policy/kasregistry/key_access_server_registry.swagger.json
index 9cff708cf..a3606167c 100644
--- a/docs/openapi/policy/kasregistry/key_access_server_registry.swagger.json
+++ b/docs/openapi/policy/kasregistry/key_access_server_registry.swagger.json
@@ -168,10 +168,29 @@
"parameters": [
{
"name": "id",
- "description": "Required",
+ "description": "Deprecated",
"in": "path",
"required": true,
"type": "string"
+ },
+ {
+ "name": "kasId",
+ "description": "option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "uri",
+ "in": "query",
+ "required": false,
+ "type": "string"
}
],
"tags": [
diff --git a/docs/openapi/policy/namespaces/namespaces.swagger.json b/docs/openapi/policy/namespaces/namespaces.swagger.json
index 7f435905c..3aa587d3f 100644
--- a/docs/openapi/policy/namespaces/namespaces.swagger.json
+++ b/docs/openapi/policy/namespaces/namespaces.swagger.json
@@ -189,10 +189,23 @@
"parameters": [
{
"name": "id",
- "description": "Required",
+ "description": "Deprecated",
"in": "path",
"required": true,
"type": "string"
+ },
+ {
+ "name": "namespaceId",
+ "description": "option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field",
+ "in": "query",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "fqn",
+ "in": "query",
+ "required": false,
+ "type": "string"
}
],
"tags": [
diff --git a/examples/cmd/decrypt.go b/examples/cmd/decrypt.go
index 430465e1d..f8040cc5a 100644
--- a/examples/cmd/decrypt.go
+++ b/examples/cmd/decrypt.go
@@ -8,6 +8,8 @@ import (
"os"
"path/filepath"
+ "github.com/opentdf/platform/sdk"
+
"github.com/spf13/cobra"
)
@@ -18,6 +20,7 @@ func init() {
RunE: decrypt,
Args: cobra.MinimumNArgs(1),
}
+ decryptCmd.Flags().StringVarP(&alg, "rewrap-encapsulation-algorithm", "A", "rsa:2048", "Key wrap response algorithm algorithm:parameters")
ExamplesCmd.AddCommand(decryptCmd)
}
@@ -81,7 +84,15 @@ func decrypt(cmd *cobra.Command, args []string) error {
}
if !isNano {
- tdfreader, err := client.LoadTDF(file)
+ opts := []sdk.TDFReaderOption{}
+ if alg != "" {
+ kt, err := keyTypeForKeyType(alg)
+ if err != nil {
+ return err
+ }
+ opts = append(opts, sdk.WithSessionKeyType(kt))
+ }
+ tdfreader, err := client.LoadTDF(file, opts...)
if err != nil {
return err
}
diff --git a/examples/cmd/encrypt.go b/examples/cmd/encrypt.go
index fdf242792..7287facd5 100644
--- a/examples/cmd/encrypt.go
+++ b/examples/cmd/encrypt.go
@@ -10,7 +10,6 @@ import (
"strings"
"github.com/opentdf/platform/lib/ocrypto"
-
"github.com/opentdf/platform/sdk"
"github.com/spf13/cobra"
)
@@ -23,6 +22,7 @@ var (
outputName string
dataAttributes []string
collection int
+ alg string
)
func init() {
@@ -38,6 +38,7 @@ func init() {
encryptCmd.Flags().BoolVar(&noKIDInKAO, "no-kid-in-kao", false, "[deprecated] Disable storing key identifiers in TDF KAOs")
encryptCmd.Flags().BoolVar(&noKIDInNano, "no-kid-in-nano", true, "Disable storing key identifiers in nanoTDF KAS ResourceLocator")
encryptCmd.Flags().StringVarP(&outputName, "output", "o", "sensitive.txt.tdf", "name or path of output file; - for stdout")
+ encryptCmd.Flags().StringVarP(&alg, "key-encapsulation-algorithm", "A", "rsa:2048", "Key wrap algorithm algorithm:parameters")
encryptCmd.Flags().IntVarP(&collection, "collection", "c", 0, "number of nano's to create for collection. If collection >0 (default) then output will be _