diff options
Diffstat (limited to 'crxmake')
| -rwxr-xr-x | crxmake | 28 | 
1 files changed, 25 insertions, 3 deletions
@@ -16,6 +16,11 @@ zip="$name.zip"  tosign="$name.presig"  binary_crx_id="$name.crxid" +key_size=$( +  openssl rsa -text -noout -in "$key" | +  sed -n 's/^.*Private-Key:.*\<\([0-9]\+\)\>\s*bit.*$/\1/p' +) +  workdir=$(mktemp -d -t crxmake.XXXXXXXX)  oldworkdir=$PWD  cd "$workdir" @@ -47,9 +52,26 @@ openssl rsa -pubout -outform DER < "$key" > "$pub" 2>/dev/null  crmagic_hex="43 72 32 34" # Cr24  version_hex="03 00 00 00" # 3 -header_length="45 02 00 00" -header_chunk_1="12 AC 04 0A A6 02" -header_chunk_2="12 80 02" +case $key_size in +  1024) +    header_length="41 01 00 00" +    header_chunk_1="12 A8 02 0A A2 01" +    header_chunk_2="12 80 01" +  ;; +  2048) +    header_length="45 02 00 00" +    header_chunk_1="12 AC 04 0A A6 02" +    header_chunk_2="12 80 02" +  ;; +  4096) +    header_length="45 04 00 00" +    header_chunk_1="12 AC 08 0A A6 04" +    header_chunk_2="12 80 04" +  ;; +  *) +    echo "Error: $key has unsupported key size: $key_size" >&2 +    exit 2 +esac  header_chunk_3="82 F1 04 12 0A 10"  (    echo "$crmagic_hex $version_hex $header_length $header_chunk_1" | xxd -r -p  | 
