diff --git a/bin/genkeys b/bin/genkeys index 23a2301067..f7f5051c03 100755 --- a/bin/genkeys +++ b/bin/genkeys @@ -15,6 +15,8 @@ if [ ! -f $site_path/cloud_iot_config.json ]; then false fi +registry_id=$(jq -r .registry_id $site_path/cloud_iot_config.json) + metadatas=`find ${site_path%/}/devices -name metadata.json` for metadata in $metadatas; do @@ -29,5 +31,18 @@ for metadata in $metadatas; do else $ROOT_DIR/bin/keygen $auth_type $filepath fi + + password="" + if [ -f $filepath/rsa_private.pkcs8 ]; then + password=$(sha256sum $filepath/rsa_private.pkcs8 | cut -c1-8) + elif [ -f $filepath/ec_private.pkcs8 ]; then + password=$(sha256sum $filepath/ec_private.pkcs8 | cut -c1-8) + fi + + if [ -n "$password" ]; then + device_id=$(basename $filepath) + username="/r/$registry_id/d/$device_id" + echo "{\"username\": \"$username\", \"password\": \"$password\"}" | jq . > $filepath/credentials.json + fi fi done diff --git a/bin/test_sites b/bin/test_sites index 2f978b0bd7..0b1efdd6bb 100755 --- a/bin/test_sites +++ b/bin/test_sites @@ -35,6 +35,7 @@ function redact_files { sed -E -i \ -e 's-oading .*udmi/tests/-REDACTED/-' \ -e 's-^ .*udmi/tests/- REDACTED/-' \ + -e 's-^ File not found: /app/tests/- REDACTED/-' \ $file done } diff --git a/gencode/python/poetry.lock b/gencode/python/poetry.lock new file mode 100644 index 0000000000..2664d6133d --- /dev/null +++ b/gencode/python/poetry.lock @@ -0,0 +1,94 @@ +# This file is automatically @generated by Poetry 2.3.2 and should not be changed by hand. + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +description = "Easily serialize dataclasses to and from JSON." +optional = false +python-versions = "<4.0,>=3.7" +groups = ["main"] +files = [ + {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, + {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, +] + +[package.dependencies] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" + +[[package]] +name = "marshmallow" +version = "3.22.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "marshmallow-3.22.0-py3-none-any.whl", hash = "sha256:71a2dce49ef901c3f97ed296ae5051135fd3febd2bf43afe0ae9a82143a494d9"}, + {file = "marshmallow-3.22.0.tar.gz", hash = "sha256:4972f529104a220bb8637d595aa4c9762afbe7f7a77d82dc58c1615d70c5823e"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<4.0)", "tox"] +docs = ["alabaster (==1.0.0)", "autodocsumm (==0.2.13)", "sphinx (==8.0.2)", "sphinx-issues (==4.1.0)", "sphinx-version-warning (==1.1.2)"] +tests = ["pytest", "pytz", "simplejson"] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, + {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, +] + +[[package]] +name = "packaging" +version = "26.0" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529"}, + {file = "packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4"}, +] + +[[package]] +name = "typing-extensions" +version = "4.13.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, + {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[metadata] +lock-version = "2.1" +python-versions = ">=3.8,<4.0" +content-hash = "40cd6dbb6ffd3808981397f946e222609c2c897c26c3278c40b336a349bb837a" diff --git a/validator/src/main/java/com/google/daq/mqtt/registrar/LocalDevice.java b/validator/src/main/java/com/google/daq/mqtt/registrar/LocalDevice.java index 8b6d8cce8d..ea7a8317d2 100644 --- a/validator/src/main/java/com/google/daq/mqtt/registrar/LocalDevice.java +++ b/validator/src/main/java/com/google/daq/mqtt/registrar/LocalDevice.java @@ -167,7 +167,8 @@ class LocalDevice implements SiteDevice { ADJUNCT_DIR, EXPECTED_DIR, CONFIG_DIR, - OUT_DIR); + OUT_DIR, + "credentials.json"); private static final Set OUT_FILES = ImmutableSet.of( GENERATED_CONFIG_JSON, DEVICE_ERRORS_MAP, NORMALIZED_JSON, EXCEPTION_LOG_FILE); private static final Set ALL_KEY_FILES =