diff options
author | Iaroslav Gridin <iaroslav.gridin@tuni.fi> | 2023-04-04 16:06:23 +0000 |
---|---|---|
committer | Iaroslav Gridin <iaroslav.gridin@tuni.fi> | 2023-04-04 16:06:23 +0000 |
commit | ca5022aa52bc9737f4a38896381fba74bd5ba28a (patch) | |
tree | a7afc088845fd96f0830f258f41ae4ad87a8477b | |
parent | 8acd95e85e0da102fc48369fd237c634fe6066ae (diff) | |
download | nss-hg-ca5022aa52bc9737f4a38896381fba74bd5ba28a.tar.gz |
Bug 1815796: Add a CI task for tracking ECCKiila code status, update whitespace in ECCKiila files r=nss-reviewers,nkulatova
Differential Revision: https://phabricator.services.mozilla.com/D169262
-rw-r--r-- | automation/taskcluster/docker-ecckiila/Dockerfile | 50 | ||||
-rwxr-xr-x | automation/taskcluster/docker-ecckiila/bin/checkout.sh | 25 | ||||
-rwxr-xr-x | automation/taskcluster/docker-ecckiila/bin/ecckiila.sh | 10 | ||||
-rwxr-xr-x | automation/taskcluster/docker-ecckiila/bin/run.sh | 14 | ||||
-rw-r--r-- | automation/taskcluster/graph/src/extend.js | 15 | ||||
-rw-r--r-- | automation/taskcluster/graph/src/try_syntax.js | 2 | ||||
-rw-r--r-- | lib/freebl/ecl/ecp_secp384r1.c | 8 | ||||
-rw-r--r-- | lib/freebl/ecl/ecp_secp521r1.c | 8 |
8 files changed, 123 insertions, 9 deletions
diff --git a/automation/taskcluster/docker-ecckiila/Dockerfile b/automation/taskcluster/docker-ecckiila/Dockerfile new file mode 100644 index 000000000..f51b77582 --- /dev/null +++ b/automation/taskcluster/docker-ecckiila/Dockerfile @@ -0,0 +1,50 @@ +# Minimal image with clang-format 3.9. +FROM ubuntu:bionic-20221215 +LABEL maintainer="iaroslav.gridin@tuni.fi" + +# for new clang/llvm +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + locales \ + cmake \ + build-essential \ + git \ + clang-10 \ + mercurial \ + unifdef \ + python3-mako \ + libgmp-dev \ + jq \ + python3-setuptools \ + python3-pip \ + python3-dev \ + clang-format-10 \ + && rm -rf /var/lib/apt/lists/* \ + && apt-get autoremove -y && apt-get clean -y + +RUN pip3 install fastecdsa + +ENV SHELL /bin/bash +ENV USER worker +ENV LOGNAME $USER +ENV HOME /home/$USER +ENV HOSTNAME taskcluster-worker +ENV LANG en_US.UTF-8 +ENV LC_ALL $LANG +ENV HOST localhost +ENV DOMSUF localdomain + +RUN locale-gen $LANG \ + && DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales + +RUN useradd -d $HOME -s $SHELL -m $USER +WORKDIR $HOME + +ADD bin $HOME/bin +RUN chmod +x $HOME/bin/* + +USER $USER + +# Set a default command for debugging. +CMD ["/bin/bash", "--login"] diff --git a/automation/taskcluster/docker-ecckiila/bin/checkout.sh b/automation/taskcluster/docker-ecckiila/bin/checkout.sh new file mode 100755 index 000000000..2a7d32c46 --- /dev/null +++ b/automation/taskcluster/docker-ecckiila/bin/checkout.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -v -e -x + +if [ $(id -u) = 0 ]; then + # Drop privileges by re-running this script. + exec su worker $0 +fi + +# Default values for testing. +REVISION=${NSS_HEAD_REVISION:-default} +REPOSITORY=${NSS_HEAD_REPOSITORY:-https://hg.mozilla.org/projects/nss} + +# Clone NSS. +hg clone -r $REVISION $REPOSITORY nss + +# Clone NSPR if needed. +hg clone -r default https://hg.mozilla.org/projects/nspr + +if [[ -f nss/nspr.patch && "$ALLOW_NSPR_PATCH" == "1" ]]; then + pushd nspr + cat ../nss/nspr.patch | patch -p1 + popd +fi + diff --git a/automation/taskcluster/docker-ecckiila/bin/ecckiila.sh b/automation/taskcluster/docker-ecckiila/bin/ecckiila.sh new file mode 100755 index 000000000..e9549b205 --- /dev/null +++ b/automation/taskcluster/docker-ecckiila/bin/ecckiila.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +set -v -e -x + +if [ $(id -u) = 0 ]; then + # Drop privileges by re-running this script. + exec su worker $0 +fi + +git clone --depth=1 https://gitlab.com/nisec/ecckiila.git diff --git a/automation/taskcluster/docker-ecckiila/bin/run.sh b/automation/taskcluster/docker-ecckiila/bin/run.sh new file mode 100755 index 000000000..dae003203 --- /dev/null +++ b/automation/taskcluster/docker-ecckiila/bin/run.sh @@ -0,0 +1,14 @@ +#!/bin/bash -eu +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +################################################################################ + +set -e -x -v + +cd $HOME/ecckiila +cp $HOME/nss/.clang-format ./ +for c in secp384r1 secp521r1; do (cd ecp/$c && cmake . && make && unifdef ecp_$c.c -URIG_NULL -DRIG_NSS -URIG_GOST -UOPENSSL_BUILDING_OPENSSL -UKIILA_OPENSSL_EMIT_CURVEDEF -UKIILA_UNUSED -UOPENSSL_NO_ASM -ULIB_TEST -x2 > tmp_ecp_$c.c && clang-format-10 -i tmp_ecp_$c.c && diff $HOME/nss/lib/freebl/ecl/ecp_$c.c tmp_ecp_$c.c); done; + diff --git a/automation/taskcluster/graph/src/extend.js b/automation/taskcluster/graph/src/extend.js index 696f8cfb0..dcad3ab50 100644 --- a/automation/taskcluster/graph/src/extend.js +++ b/automation/taskcluster/graph/src/extend.js @@ -25,6 +25,10 @@ const ACVP_IMAGE = { path: "automation/taskcluster/docker-acvp" }; +const ECCKIILA_IMAGE = { + name: "ecckiila", + path: "automation/taskcluster/docker-ecckiila" +}; const CLANG_FORMAT_IMAGE = { name: "clang-format", @@ -1187,6 +1191,17 @@ async function scheduleTools() { "bin/checkout.sh && nss/automation/taskcluster/scripts/run_hacl.sh" ] })); + + queue.scheduleTask(merge(base, { + symbol: "ecckiila", + name: "ecckiila", + image: ECCKIILA_IMAGE, + command: [ + "/bin/bash", + "-c", + "bin/checkout.sh && bin/ecckiila.sh && bin/run.sh" + ] + })); queue.scheduleTask(merge(base, { symbol: "Coverage", diff --git a/automation/taskcluster/graph/src/try_syntax.js b/automation/taskcluster/graph/src/try_syntax.js index 4629ff4b2..e7d1c43e8 100644 --- a/automation/taskcluster/graph/src/try_syntax.js +++ b/automation/taskcluster/graph/src/try_syntax.js @@ -57,7 +57,7 @@ function parseOptions(opts) { } // Parse tools. - let allTools = ["clang-format", "scan-build", "hacl", "saw", "abi", "coverage"]; + let allTools = ["clang-format", "scan-build", "hacl", "ecckiila", "saw", "abi", "coverage"]; let tools = intersect(opts.tools.split(/\s*,\s*/), allTools); // If the given value is "all" run all tools. diff --git a/lib/freebl/ecl/ecp_secp384r1.c b/lib/freebl/ecl/ecp_secp384r1.c index 1e3ca6c39..aee99bf23 100644 --- a/lib/freebl/ecl/ecp_secp384r1.c +++ b/lib/freebl/ecl/ecp_secp384r1.c @@ -1,19 +1,19 @@ /* Autogenerated: ECCKiila https://gitlab.com/nisec/ecckiila */ /*- * MIT License - * + * - * Copyright (c) 2020 Luis Rivera-Zamarripa, Jesús-Javier Chi-Domínguez, Billy Bob Brumley - * + * - * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * - * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. - * + * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE diff --git a/lib/freebl/ecl/ecp_secp521r1.c b/lib/freebl/ecl/ecp_secp521r1.c index 57e3a81b8..d99a0bde4 100644 --- a/lib/freebl/ecl/ecp_secp521r1.c +++ b/lib/freebl/ecl/ecp_secp521r1.c @@ -1,19 +1,19 @@ /* Autogenerated: ECCKiila https://gitlab.com/nisec/ecckiila */ /*- * MIT License - * + * - * Copyright (c) 2020 Luis Rivera-Zamarripa, Jesús-Javier Chi-Domínguez, Billy Bob Brumley - * + * - * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * - * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. - * + * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |