NaviServer has native support for base64 and base64url encoding/decoding
See:

https://naviserver.sourceforge.io/n/naviserver/files/ns_base64.html

-gn
On 25.05.20 03:23, Maksym Zinchenko wrote:
As I understood, you want to send data to your REST API in url, so you cant use ns_base64encodin.
Because its base64 not base64url.
May be some of this will be helpful:
https://wiki.tcl-lang.org/page/base64
https://wiki.tcl-lang.org/page/base64url

Chilkat:
https://www.example-code.com/tcl/base64url_encoding.asp

On Mon, May 25, 2020 at 12:08 AM Maksym Zinchenko <siqsu...@gmail.com <mailto:siqsu...@gmail.com>> wrote:

    What do you mean its not encoded correctly?

    ns_base64decode
    eydpc3MnOiAnMjY5NzM0MTAwMDAxMDInLCAnYXVkJzogJ2l1cml4LmNvbS9SRVNUJywgJ3N1Yic
    6ICc3MDQnLCAnaWF0JzogMTU5MDM2NTY1MH0=
    {'iss': '26973410000102', 'aud': 'iurix.com/REST
    <http://iurix.com/REST>', 'sub': '704', 'iat': 1590365650}


    On Sun, May 24, 2020 at 11:56 PM Maksym Zinchenko
    <siqsu...@gmail.com <mailto:siqsu...@gmail.com>> wrote:

        sourcecode/nsd/uuencode.c maybe

        On Sun, May 24, 2020 at 11:23 PM Iuri de Araujo Sampaio
        <i...@iurix.com <mailto:i...@iurix.com>> wrote:

            Hi there,

            It looks like *[ns_base64encode]* generates a wrong
            payload when message size contains more than 63 characters.

            https://tools.ietf.org/html/rfc4648#section-5

            An alternative alphabet has been suggested that would use "~" as the
                63rd character.



            (1) Payload, which generates a proper encryption.
            setpayload [ns_base64encode "{'sub': '$user(user_id)',
            'it': [ns_time]}”]

            eydzdWInOiAnNzA0JywgJ2lhdCc6IDE1OTAzNjU2ODF9

            (2) Payload, which generates a wrong encryption

            setpayload [ns_base64encode "{'iss': '26973410000102',
            'aud': 'iurix.com/REST <http://iurix.com/REST>', 'sub':
            '$user(user_id)', 'iat': [ns_time]}”]
            
eydpc3MnOiAnMjY5NzM0MTAwMDAxMDInLCAnYXVkJzogJ2l1cml4LmNvbS9SRVNUJywgJ3N1Yic6ICc3MDQnLCAnaWF0JzogMTU5MDM2NTY1MH0=


            item (2) is not encoded correctly using base64url
            (https://tools.ietf.org/html/rfc4648#section-5). Note that
            padding ("=") must be omitted as per
            https://tools.ietf.org/html/rfc7515#section-2

            How would I use [ns_base64encoding], if i decide to add
            more content in the payload message? Is it possible?

            I was trying find where ns_base64encoding is implemented,
            within Naviserver source code. But I haven’t found yet.
            Then I’d be able to go deeper into the problem to identify
            the actual cause and try to write a solution to it.

            Does anyone know where is the implementation of
            [ns_base64encode] ?

            Best wishes,
            I

_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to