mirror of
https://github.com/outbackdingo/certificates.git
synced 2026-01-27 10:18:34 +00:00
Simplify the copy logic used when patching JWS signature
This commit is contained in:
@@ -493,8 +493,7 @@ func retryVerificationWithPatchedSignatures(jws *jose.JSONWebSignature, jwk *jos
|
||||
originalSignatureValues[i] = original
|
||||
|
||||
patchedR := make([]byte, expectedSize)
|
||||
copy(patchedR[0:1], []byte{0x00})
|
||||
copy(patchedR[1:], original[0:expectedSize-diff])
|
||||
copy(patchedR[1:], original) // [0x00, R.0:31, S.0:32], for expectedSize 64
|
||||
sig.Signature = patchedR
|
||||
jws.Signatures[i] = sig
|
||||
|
||||
@@ -507,9 +506,8 @@ func retryVerificationWithPatchedSignatures(jws *jose.JSONWebSignature, jwk *jos
|
||||
|
||||
patchedS := make([]byte, expectedSize)
|
||||
halfSize := expectedSize / 2
|
||||
copy(patchedS[:halfSize], original[:halfSize])
|
||||
copy(patchedS[halfSize:expectedSize/2+1], []byte{0x00})
|
||||
copy(patchedS[halfSize+1:], original[halfSize:])
|
||||
copy(patchedS, original[:halfSize]) // [R.0:32], for expectedSize 64
|
||||
copy(patchedS[halfSize+1:], original[halfSize:]) // [R.0:32, 0x00, S.0:31]
|
||||
sig.Signature = patchedS
|
||||
jws.Signatures[i] = sig
|
||||
case 2:
|
||||
@@ -523,10 +521,8 @@ func retryVerificationWithPatchedSignatures(jws *jose.JSONWebSignature, jwk *jos
|
||||
|
||||
patchedRS := make([]byte, expectedSize)
|
||||
halfSize := expectedSize / 2
|
||||
copy(patchedRS[0:1], []byte{0x00})
|
||||
copy(patchedRS[1:halfSize], original[0:halfSize-1])
|
||||
copy(patchedRS[halfSize:halfSize+1], []byte{0x00})
|
||||
copy(patchedRS[halfSize+1:], original[halfSize-1:expectedSize-2])
|
||||
copy(patchedRS[1:], original[:halfSize-1]) // [0x00, R.0:31], for expectedSize 64
|
||||
copy(patchedRS[halfSize+1:], original[halfSize-1:]) // [0x00, R.0:31, 0x00, S.0:31]
|
||||
sig.Signature = patchedRS
|
||||
jws.Signatures[i] = sig
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user