summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIaroslav Gridin <iaroslav.gridin@tuni.fi>2023-04-04 16:06:23 +0000
committerIaroslav Gridin <iaroslav.gridin@tuni.fi>2023-04-04 16:06:23 +0000
commitca5022aa52bc9737f4a38896381fba74bd5ba28a (patch)
treea7afc088845fd96f0830f258f41ae4ad87a8477b
parent8acd95e85e0da102fc48369fd237c634fe6066ae (diff)
downloadnss-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/Dockerfile50
-rwxr-xr-xautomation/taskcluster/docker-ecckiila/bin/checkout.sh25
-rwxr-xr-xautomation/taskcluster/docker-ecckiila/bin/ecckiila.sh10
-rwxr-xr-xautomation/taskcluster/docker-ecckiila/bin/run.sh14
-rw-r--r--automation/taskcluster/graph/src/extend.js15
-rw-r--r--automation/taskcluster/graph/src/try_syntax.js2
-rw-r--r--lib/freebl/ecl/ecp_secp384r1.c8
-rw-r--r--lib/freebl/ecl/ecp_secp521r1.c8
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