Skip to content
Snippets Groups Projects
Select Git revision
  • 052e08e77158e09322ccc9baa155e072e214e30a
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-08-04
  • experimental-2025-08-04-base
  • experimental-2025-07-31
  • experimental-2025-07-31-base
  • experimental-2025-07-29
  • experimental-2025-07-29-base
  • experimental-2025-07-28
  • experimental-2025-07-28-base
  • experimental-2025-07-26
  • experimental-2025-07-26-base
  • experimental-2025-07-24
  • experimental-2025-07-24-base
  • experimental-2025-07-22
  • experimental-2025-07-22-base
  • experimental-2025-07-21
  • experimental-2025-07-21-base
  • experimental-2025-07-20
  • experimental-2025-07-20-base
  • experimental-2025-07-19
  • experimental-2025-07-19-base
41 results

sigtest.sh

Blame
  • sigtest.sh 820 B
    #!/bin/sh
    
    if [ $# -eq 0 ] || [ "-h" = "$1" ] || [ "-help" = "$1" ] || [ "--help" = "$1" ]; then
    	cat <<EOHELP
    Usage: $0 <public> <signed manifest>
    
    sigtest.sh checks if a manifest is signed by the public key <public>. There is
    no output, success or failure is indicated via the return code.
    
    See also:
     * ecdsautils in https://github.com/freifunk-gluon/ecdsautils
     * https://gluon.readthedocs.io/en/latest/features/autoupdater.html
    
    EOHELP
    	exit 1
    fi
    
    public="$1"
    manifest="$2"
    upper="$(mktemp)"
    lower="$(mktemp)"
    ret=1
    
    awk 'BEGIN    {
    	sep = 0
    }
    
    /^---$/ {
    	sep = 1;
    	next
    }
    
    {
    	if(sep == 0) {
    		print > "'"$upper"'"
    	} else {
    		print > "'"$lower"'"
    	}
    }' "$manifest"
    
    while read -r line
    do
    	if ecdsaverify -s "$line" -p "$public" "$upper"; then
    		ret=0
    		break
    	fi
    done < "$lower"
    
    rm -f "$upper" "$lower"
    exit $ret