On Tue, Mar 14, 2023 at 10:25 AM Van Fury <furyva...@gmail.com> wrote:

> Am developing a server (diameter) which will response with an AVP 
> SIP-Authenticate.
> In the specification
>
> " The SIP-Authenticate AVP is of type OctetString and It shall contain,
> binary encoded, the concatenation of the authentication challenge RAND and
> the token AUTN"
> The RAND and the AUTN in this case are hexadecimal strings s1 and s2.
>
> My problem is how to encode s1 and s2 concatenated and then be able to
> decode at the server side too.
>
>
You probably want to start thinking about representations. Your application
has some internal representation of the (128-bit long) RAND and AUTN token.
And there's a representation on the "wire" in the protocol. The protocol
representation is decided for you, but you can pick any you'd like for the
internal representation. OctetString is just a synonym for []byte in this
case. And the output is going to be at length 32. You have a function pair
which encodes/decodes from your internal representation to the protocol
(and back).

Were it me, I'd represent the internal RAND and AUTN as [16]byte data.
Then, the encoder/decoder is just the identity function in this case. If
you need a hexadecimal representation elsewhere in the application, you'd
hex-encode when you need it. It sounds to me you have chosen a hexadecimal
encoding as your internal representation, but I'd advise against it. You
end up having to do far more work getting into the right form all over in
your app.

In any case, the advantage of thinking about internal/protocol
representation is that the conversion points between the formats become
explicit and controlled in the application. This makes it far easier to
evolve the application internally without having to worry about the wire
format. Both the wire format and the application can evolve independently
of each other.


-- 
J.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAGrdgiXLgwhLYvGAVEJW72NJGH8etae3jf%3DVmG6KqtTiN9%3DB4Q%40mail.gmail.com.

Reply via email to