Hi,

Base64 encoded data has a length which is multiple of 4.
If not, it should be padded with "=" (1 to 3 "=")

Your data is not strict base64 as it does not follow this.

Looks like 4D does not like when it is not padded.

// pad with "=" to make text a multiple of 4
C_LONGINT($vl_padModulo)
$vl_padModulo:=Mod(Length($vt_base64Encoded);4)
if ($vl_padModulo>0)
  $vt_base64Encoded:=$vt_base64Encoded+((4-$vl_padModulo)*"=")
End if

PS : there is a base64Url safe, where you should also do :

$vt_base64Encoded:=Replace string($vt_base64Encoded;"_";"/";*)  // convert "_" 
to "/"
$vt_base64Encoded:=Replace string($vt_base64Encoded;"-";"+";*)  // convert "-" 
to "+"

Bruno LEGAY
A&C Consulting

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to