What is the areas you would like to add the new feature to?
Go-COSE Library
Is your feature request related to a problem?
One willing to attribute counter signatures to either COSE_Sign1 or COSE_Sign will not find a way except fork the project and write alternative toBeSigned functions.
What solution do you propose?
Extend the current Signature struct adding a CounterSign(rand io.Reader, signer Signer, protected cbor.RawMessage, payload, external []byte) error so that the toBeSigned function receives also a context parameter that can be "Signature" or "CounterSignature".
Above supports recursive counter signatures, where a counter signature also contains a counter signature.
What alternatives have you considered?
I considered implementing an external package extending go-cose but I had to copy-paste many private functions, such as toBeSigned, deterministicBinaryString, marshal, ensureIV, ensureSigningAlgorithm, and ensureVerificationAlgorithm, along with global variables encMode, decMode, decModeWithTagsForbidden and the init() function.
What is the areas you would like to add the new feature to?
Go-COSE Library
Is your feature request related to a problem?
COSE_Sign1
orCOSE_Sign
will not find a way except fork the project and write alternativetoBeSigned
functions.What solution do you propose?
Signature
struct adding aCounterSign(rand io.Reader, signer Signer, protected cbor.RawMessage, payload, external []byte) error
so that thetoBeSigned
function receives also acontext
parameter that can be"Signature"
or"CounterSignature"
.Above supports recursive counter signatures, where a counter signature also contains a counter signature.
What alternatives have you considered?
go-cose
but I had to copy-paste many private functions, such astoBeSigned
,deterministicBinaryString
,marshal
,ensureIV
,ensureSigningAlgorithm
, andensureVerificationAlgorithm
, along with global variablesencMode
,decMode
,decModeWithTagsForbidden
and theinit()
function.Any additional context?
No response