Reputation: 218
I am trying to develop an android application which is supposed to perform Base64 URL safe decoding but stuck at some point. When using android.Util.Base64.decode(string, Base64.URL_SAFE) vs java.util.Base64.getUrlDecoder.decode(string) the output is coming out to be different. Can someone help why this is happening
String
PCFET0NUWVBFIEhUTUw+Cgo8aHRtbCBsYW5nPSJlbiI+CjxoZWFkPgogICAgPHRpdGxlPjNEUyAtIFNpbmdsZSBTZWxlY3Q8L3RpdGxlPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSIvPgoKICAgIDxzdHlsZT4KICAgICAgICAvKiBHZW5lcmFsIFN0eWxpbmcqLwogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFwdDsKICAgICAgICB9CgogICAgICAgIG9sLCB1bCB7CiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDsKICAgICAgICB9CgoKICAgICAgICBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsKICAgICAgICAgICAgZGlzcGxheTogbm9uZQogICAgICAgIH0KCiAgICAgICAgc3VtbWFyeSB7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7CiAgICAgICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgICAgICBwYWRkaW5nOiA3cHggMTBweCA3cHggMTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTNweDsKICAgICAgICB9CgogICAgICAgIGRpdi5yZWxhdGVkLWNvbnRhaW5lciB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDUwcHg7CiAgICAgICAgfQoKICAgICAgICBwLnN1bW1hcnktcCB7CiAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDdweCAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0OwogICAgICAgICAgICBtYXJnaW4tdG9wOiAtMjJweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CgogICAgICAgIC5idXR0b24gewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OTg3OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgICAgIGJvcmRlcjogMDsKICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICAgICAgaGVpZ2h0OiAyLjVlbTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuNWVtOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KCiAgICAgICAgLmJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmODIwMDsKICAgICAgICB9CgogICAgICAgIC5idXR0b246aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM3MzczOwogICAgICAgIH0KCiAgICAgICAgLmJ1dHRvbjphY3RpdmUgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTk1OTU5OwogICAgICAgIH0KCiAgICAgICAgLmNhbnZhcyB7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgfQoKICAgICAgICAjY29udGVudCBoMiB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgfQoKICAgICAgICAuZm9ybS1jaGVjayB7CiAgICAgICAgICAgIHBhZGRpbmc6IDdweCAwIDdweCAwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KCgogICAgICAgIC8qSW1hZ2VzKi8KICAgICAgICAubG9nby1iYW5rIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOwogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgICAgICAgaGVpZ2h0OiAzNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMzNweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTDBBQUFBMENBWUFBQURmYURrZ0FBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFYWlNVUkJWSGhlN1preFVpdzdERVgvMG9oWkFERUxJSDQ1T1RFNU1UazVPU3RnQjZ4aWZoMEtWOTJua2kyNzJ6MlBHZXRVcVdER2Jsa3RYNnZ0bnY5T1NiSVlLZnBrT1ZMMHlYS2s2SlBsU05Fbnk1R2lUNVlqUlo4c1I0bytXWTRVZmJJYzNhSy91Ymtac29lSGg5UFQwOVBwNCtQang4UGw4djcrL3RlOW5RTWRqL0dUZVJ3bWVyWEh4OGZUMTlmWGo2ZkxJMFYvWFp4RjlCaVYvMUpKMFY4WG0wUWZUUUpibXJlM3QyK2g2M1V2THk4L1BTNkxGUDExY1lqb0ZSWCszZDNkejdlWFJZcit1amhjOUZSOXZmWVNEN1lwK3V2aWNOSERubXQvQXluNjYrTHNvdStwOUp3SGVPTnpmMy8vMTdXM3Q3ZmYyeVhPQnRIYklMMnU4UHI2ZXZyejU4KzNuOUxHR00vUHowMS92YUxIaDhiTS8xdmZXdWw0czBYLytmbjUvVHJabnJtSWwrOXA3NFg3WXo3VUYvbGwvb29melIvOUltYkc1M0c0NkFtd1hFY3lXckFnVkRRdHd4Y2lycUY5bVJpYlFHdjRZN0Y1OUloK3B1QkJ4NXNwZWtTanZtdEd2d2ppMGdMaUdYTTBJdnFaOGRVNFhQUlUxbklkRmJVR2dvOFM2Rmt0RnUwenNwQzhLcUtUaGxsbUN4NTB2SkY4dDZENnF0L0k2Ri9EbnRWYXBrSnVpWDVtZkMwT0VUM0NZWVZiSWJUUVNvejRXQ0IySzhTNE5qRXNLZy90VTR4cjFTZVYzUzRJcjRLMFJIK0U0RUhIbXlGNjhxaytlWlBHSEpWWStjdG52dGQrWHFHaXI5ZXZGSXppeXl0aU5kSFBqQzlpaytoSERTR1Y0RDFzMVlnbVdSTkVZajNVSDBiQ1BPd0Vlb3V6SlhwZGhMTUVEenJlWHRIckZoTnJ4Y24zdW9neCsvU3pBclhGcWVENThrUS9PNzZJczRpZUcyMU5uQ2F4OWZncjJDUjVhSHZrazRPWTlyZlVSSCtVNEVISDJ5dDZ2VCtLUkJRbjdWcWw3WStLV2lTaVNtc0xtamNYcytPTE9Jdm9pNDBHMTBMOWVtaDdORzZya29QWGZxVGdRY2ZiSzNxRVZuejFIZ0JyKzNCYmNIcnVXODkxbnVobnh0ZkRJWHQ2RWtFZkF0TVZpZFhla0xRby9oQXZZclA3T2c5dGorS2xYZnRiYkxzS0hodE5lZy9xUDRvL1lvdXZXazZZdi9JZGk3Mkg2RWxlMnJDOThmVndpT2dWSG04cWZBVGJna3FDdUtrT2R1OVdNdzl0aitLTkVtamJQWnY1RkFQMVBaSnZqeTIrYWprWjNZcUNMcFFsUkE4SUlycWVhbTRyYUs5NWFIc1ViNVJBMjQ2eGtKbEEvVHg2b0dxaFk0M20yN0xGVnkwblcwU3Z2cFlSdlQzTTJNTVBnbTlWZFo0T0pJdnRFbTloUmcreVVieFJBbTA3QXVlZWlGdWZZcjBpNkVISEc4MjNaWXV2V2s2eTBnK2cxMXZSYXlJeEtqNkpxbFZPeEtiOVBiUTlpamRLb0czWFYzUXNRbTNiY21ieFVKOWI4cTJvcjk3NFZLaFlRZS8zaUQzOTN2aDYrQ2VWM3U1L1IxNkJRU1JTMFBZbzNzaGYxTTVFbGpZcVA0dHlMenJlYUw0dEd0L2V0eU4yTG52dWRZbTNOeFpieWJWU2dyYjErTllrWWg3YUh2bU1SQjIxMisxVzdWZmlFZFRmYUw0dGVxYnFXWlIyMjJhRk9GS2tiRzQ4Z2M2T0wrSncwU053RGRCN2U2TythNytjRnJ6RHJyY04wdmFqUlE5MlllOFY2a3hmVm5pdDN4WDQzcDZ2Ykg3MVhwbGJXOFFLbmk5UDlMUGppemhNOVBSaEJhcmdNVS9VZWhQMEo2bDZJL3pQZFZwaDFMeDRvbmFGZHUxdmlkb0xHaC8vMXlhdUJ4MHZpcjhIdXlpSmo1eVdHUG5yNWRpcm92UzEvWFRPYXI2dzJsWmtabndSbTBTLzFhalNIdlpRTW1yZTRVZmJ6eVY2MjIvTGhCVFV6eFpEUkJhN0xZeXN0VmUyZS90ZWEvbWNHVitMczRuZW13U0ZWZXhkWjYxVUFHNjRmT2VKUzY4NWwrakJicitpc1d1b2p5MVd5emU1OHZwYjYxbXczSnQ5a2x2aktSNGRaSldaOGRVNFRQVGxaam1rbEVkVUJJOUhSR1AzYkh3dXJ6RUx1a2hZQ0JhOS9weWk1MTVWQ01TK0JSMXZpN1dLREhsR05EYlBDSkx2ZFdzWndmMHl4MXFFaWkvbUNIVHIwblBJbnhtZlI3Zm9rMlFyS3Zyb2lYOE9VdlRKTUZwOWU3WnYraFFvMWY5ZmtxSlBodEh0VzdSZHNXZTF2VnVUR2FUb2sySHNZUjNoMjRyUFo5dVB6NytCRkgweUROVTZlbXRqalVOcDd3dU5vMG5SSjV2Z1BiMzM0NU5uUEFsK2krQWhSWi9zZ2owN29yWUxnTXJPNjhXZWcrNjVTZEVueTVHaVQ1WWpSWjhzUjRvK1dZNFVmYkljS2Zwa09WTDB5WEtrNkpQbFNORW55NUdpVHhiamRQb2ZRNEdISnBJRzlxOEFBQUFBU1VWT1JLNUNZSUk9KTsKICAgICAgICB9CgogICAgICAgIC5sb2dvLWVtdmNvewogICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jazsKICAgICAgICAgICAgd2lkdGg6IDE0MHB4OwogICAgICAgICAgICBoZWlnaHQ6IDQ3cHg7CiAgICAgICAgICAgIGZsb2F0OnJpZ2h0OwogICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMzNweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTkFBQUFBMENBWUFBQUQ3Y2JiZ0FBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFBWWRFVllkRk52Wm5SM1lYSmxBSEJoYVc1MExtNWxkQ0EwTGpFdU52MU9DZWdBQUJlL1NVUkJWSGhlN1owSldGUkh0b0ROWkNZYmdnSUNpcmh2Z0xnTHJzalMzZERzV3pkN0wzVFREYzIrNzlxZ2dDS2lVY0VFWlZNUUJlTVM0a3Rpa2drdmJ5Wk8yRVFkNTAyU041bVorQ2JMWkROUll6YndUcDE3cTVwR2FBUUVOWHIvN3p2ZnBldlVyWHU3YnAwNnA1YmJUR0JoWVdGaFlXRmhZV0ZoWVdGaFlXSDUxVk5VZDJMcDl1cVR5dzRjT1dlS2sxaFlXTzVrKzlHemhuUDlFbXlzaEluNXE4TXpPa3hjNUYvcGJRci95b1FybzB4NGNtcXlrK1Q3aWVqenl2Q01yeXc4b3NvOGs3ZUhTdFRsVS9IcExDeVBKMkhaZTYzbkI4UVZtcm5LdnpWd0VGSDZtOFJZUkJReUdDUncxRTd2RTBObjZmYzJRVWx2TzBadDNvQ0xZMkY1UElncHJacTFQQ3p0K0JST1JBOXRKUFpnTEhjS01TSmRFa1lmSnptS0tUUFh5TGNDMGt0VzQrSlpXQjVkT0RINVlVWWN5WmQzR2doNG5VbU9raC9uK2NaOWFjU1JsUWRtbFphdkVtVTJvUkR1R3VpSW9IQ08yaWpQdTJYSWtkN1FSMTZMT1ovMlZEY3NCUW5xNUxLeVovR2xXRmdlSFJ6VTZ0ODZxVGJYb1ZEdGRqL0RRVVpnN3E3ODJpazZ2NElYdDIwT3pxNkJsMXFxdDhBL0xnOTVtaCtKMGMzeVZuMGNuUDM4MGczeXZOQzVQckh2VDNJUUV5T2lGZ1RFdDFzSWtsa2pZbmwwVUt2VnYxa3J5em5STjdhQjhFdEVtZkJrMzlwSk10UFZsUzNQNGF3NnNaV2tMWi90cmJySm5DK2lMTnlqUGxZVXZqZ05kRTdSVzBRR2p1SVBJVjBmNlpGM2FwdmxJSG1HUHBHRjVkZU9SMkp4azhiaklORkRzalE0NVk5NUI1b1c0U3pEWW12VmlSVld3aVJrUkl3aElvTnF4YW9KZ3V5OUppaUUrejI1ampFeW92bjgrS2V4bW9YbDE0bERsRnBnb0FteG1FRy9pWXNzRGF0SGpHanJnUlZtcnBIWHdSQ2h6Q1hCS1R1d2ltYU9sK29nNk1EYldRY212ZGQwL2p3YnpySDhPa2t1cTVzK3lWSHlNUk82aVNpWXFyYjBqMC9CNmxFengxTmxhOFNKb0wwWlRDcDRwNWF1d1NvYUUxZFpKZTN0MFBWV2lUSnljVExMQTZic2FJdURUV0NDKzNPYlJFaEMzRkc3b1AvbUoyeDFiemo3N2l5Y2pZVXd6VTFaUVR3UEdORjh2L2hkV0hYUHpQWlI3V2JDTlJFMTFVM3hCNXhNcyt0b3k1U1pudEVmZ0I2TmpXN1lCQ2VZWWRXUUNMTEtXdGZMY25ySFRDTHpwTGhvR3J1SWJPc05Xdm9OOHR3ZjNXS0xGMkwxUGVHbzJPeUJ5a05sb25KUjJRN0tMVGZWQjA5YWdNNGxmdHZyOUhXUjNrNmNkVFczNHRnTStxUjdZRU5rN202NDNucTRYbVR1THpIRjFmMDZNWUpuY29tRGRWREM0Zm0rY2Iwa2FtQ09TUER5QlU2L2pTS0dmOXVLTWt0RDFidm40dE1mWC94VFMyY1pPMHMxTTI1emZGUi9GVFkzUDRuVjk0d3dSajNSM0YzNUxWTytpSklWVlBUemJJdUQwdVpOY2hML0RIcExZZUwvNE9RaDRjWVdmRG5SQVpVM1JxTHZFQjZCaTZhWnVESE11bDhlcUJkdjFXV3NIalYyWVdxRE9kNHh0MGhkUTMyZ01KZUNyVkNndHhYbHVJSTNKcE00cUtGVzB5ZU9Fa1h4aTJ0TWVITDhiRVhvMmNiOENhczBiSXpJbW92R3BPOUIxQUY1R0dIdWo5eEhmK2xMTTNTVzlGb0pFc3N0MWdvZTMvQjdlVmpxUWFnTTZGMVFoVkRySTNPV1k5V1lJY2phdFJPdUFaTVNzNzFVNTFIU0U0eUd3VmFTY0JMMHhoenBiWmoyeHNrNjRjWVVmQW4zcStraDcxSDBOdzVpUUFNYWo0aGFJODdNdzFsR2hVMVFjcU0rWGxnbTRmSlVMUU9pS09xSnBhR3BsOGkxVFhpeVhzK0VIVFBwazBlQnRURHBWZWJldzJCTTI4TlJGZGhpRlkxdjJrNlZrYlAwSi9JZGljRVlPa3NwRkJsOGdjTHV0b1grQ1cxemZXTGJVSHFidVp2aUM3S21wMTMvTXp5anY3RVdKZzY3M1ZSMmR2NHVxdkFGdTJmdHhYWThWWUZRdkdWZm1RSDYyOElqeWk2djRyQVZ6dmJ3QTR1WlpxN3lUNkFTUUZDbE5XTFZtS0pVVno1bjdxYjhEcTZCeGxwVWNmVUpUUmhSMWU2NnFPUTFsMnVHenN3OVdBb1M2N0ZLSjR3Qk1UMzFzdEMwVzFuN2oyUm43RzhZdFdRL1g5ZlBhTUdBU0dPQ280RWowOWlSZ2Y4aUw2cTRxNEVQaHJOSzdVdDZlUlN1MG1XRGFIc2dRS0l1NThNRUR1ajBVTjdwYm9wYXJCb1JHeUp6MWs1MkVpUHZ3MXh6alRUcmoxaEY0NVpVVkVpdVF3eDJwcWZxODdYeW5HMnFYVFV6MUxXdEE1WVhKT3JhWjJLTER5NjBDVTRzTmVjclA0ZTZnWHZFQm5yRG5DOWJnYk1PU3NqbVBlc1crTWVWVCtOSDNwaU1PbXZhQU8yWjUwaUxneGpHeWowelBhUCt6eTQ4SXdOMXBzTUs2UjhZY1NVMTlpaDhvU3NRWnVBMnl0V2phaHpEd1VxWVZFd2FqWjAwYXgra25ia2tXMVRUNmZidG9YWU90VndXU04rSENWZCt2YXlwYWNpUWdJTU1pRFNNdFJFNTMrRGtNVVBiZ0V4Y1pKUlRkSDRIV1JORDMrTVN6alpzSEZBWWF4a1Fmd3NhRE5Uenl2QzBhdEo3MzJsQWdMbXJvb3A4UDlRd2Y0bmJmdEFacTRaRkxXcjhGaDdSYnpCbElJL2lKUGxlZS9GN1lXQ0M3V1JueG5qZ1BpRHlXQldlZmhBNk9wemxya0JlUzBGU0lUTFNYNkFjRUF0MzVRMmhldWVBemNQUnBRZE1WNHN5enFMcmFDM09NOTl2b1BUcHBya3BibGtIcFVnckt5dC9oNHQ2dUpqbG9WQ1JHMGJ4OFY5eDhyaVFobnA1TWsxdXpJczQvOUpsaWVYaFRvOXJWY2g0UUJUbFhyUU9ldW5GZ1VsRGJqeGxQQkN6V1hWdFJPNDRHNUNjeW43eEdBYzE5SS9KdzNlTXpsZmpyTU5pdFRqaktEbDNuay9zSHljN2hTOGpuN1ZET0lKLzlpNUxwckV4OTJBbFRPeFNVOVJ2c1BxdStLVHRER1c4SFhPTjJWN1J1N0dLeHBRcnY4aVV6V3k1NHNUa3A4TWlPbGFQQ0pmWXdnQmtPSCt4Q1U1U280NWlnUEdzQ3NtMlJOOFpqNEg3QkgzdjNpazgyVWQyNHN5UDdDUHpQcklKU3YzSXlEbmlNeU9PdEY4KzhQNkxoY21ucllYcXAzQ1JEdytPMFZ2ZUpUZTZOQ1JsRzA0ZU4rYjV4YjBQMTFvY0txWnEyajJ1RStNQktYbk5uVFllZUtpYkZKdHBENlVMYlErMFpqdzlFUExPOEpyRzFyclRxMWFFcFhPWVVJNDJxbHVMdkdYNk9QdVErR2VYK0U2bVF5VjZSOGRQNjhKVFRmVTJoUzRoOVQ2WUJ3S1docVRXTW5sRTRFRW8xR2x3c0dwSTFPcm1weFlHSkh4R3lwL0NpN2pobFZDa0NZV1E5eGNTSFpTOU9EQzVFY1plV0QybVNJb3FMYzFjSXErUjYwR2RHbk5sZjFzc1NCTEJSbVdjVFVOVDAvbG43Y0p6NXlEUFZvM0dXdGZKTXdaWkpFZzRyVzV1ZnJpTWFLWkgxR1VJVGVDTEJXYVZ1ZVBrY1FNMTlqb2JjU0MxdDVXbk1SeEd1TlRCLzVZVm83aWEzdldOZXFFaHgyTDlQZEQ5TVNBMHhIOWlTVWpxT2RMd1puZ3Evd3RuMXdrL2Z1L1RxTUYwd2VRSmxJZkdkL1FNcE40bTZWME5LR1ZYcmFVcFQ5YXJUMDhoaXlnMGh1d2NqcGRZTFVvWDBmZU83M09ESXE5Zlp6VGJKK1lWY3UwcFhPblBDVVdIeG0yY2djTGRkMG1vQ3BNUHlMQmZudUNnL2kxV0Q4bDhRYnoxRE04b2JIek11SEZsYUZxLzVZWUh6a1Q3Y0dSQWRCemNnNVBHbGZ6VFhwa3ZuT2ZlWVR3Y3FycWQxOXA4UmZnVXVoZDZUV2hsZU1ZUCtKUkIwVFlnTkdicW1XZ3Y3aGlXYkJKM1ROb1lldGUxQzIwRE1rVWhIR05BS0Z4SlZodVp1MGZSVSs2Z2QxQnNFZEVuNkdDNmg3SUFIajdrWHlSSS9DZFpIdEQyUUlPRmNJUVZvZW5iU1Q0SWY2MkNFdDJ3YWxDRXd1WW56VnprLzAvT21lWVcrWFhXL2xQR1dEMUJpY1lTaXdJU05lR1VLUy9pYmF3YWM1d1ZCVTZNOFREMU9OMHQ2alhZcUl6VncySkRaTjVpTkZiN25xbERtUEtYZjl3OGhrc3M5d3hqUUhUUE9LNEc5T3FIOFUvWGQvZzAzR2s0dExSeHI4RjRDUEtobmhvWkVCcVBlY2NNYVVCTUNNYzBncEdKaU5KekVpL0d4ZWhrY0EvRXNDbzhRMDdLUTQzL3UxVks5YUFENzJYQk1ZdU5uSmw0SG8wemVzTnk5enRpVlo4Qm9mSjFlU0JBcU53eENRYlNwQmVmNXhmN1JYcFZsYzdRRWRWTElmRStjSTZWSUw2ZmdRdlY2cWRtZVViVGVxZ0x4eWoxdUJuUVdtbE9QWE9kTU9UcEltNUhsMVNOYUQ4bFliVTRheC85blpBbmhobGNUdXcyVFQwK2NJZ0hRb1AyditPa01hZXgyOCtqdHNQOTYvNkdRN3dRbHpwNVNaS0VzNktHRlVaN0lFTm42YkE5MEVqbFhnMElRRDM3bTB6akNLY1dDdUpmd2NrYVZpbVZ2N1B3aUtMSGV5RFdnc1FYc0lwbXVBWUVMQWxPVG1MS1lYcmhkZExzUkt6cWg3cTJlZXBzYjFVdnVhYUZtL0lxaEpCWVRRTUdOTk5UaGNzS2g4bURjVE1nMUxicWlUSERobUdjUEdKTU9SRnpZYWFZZENKMm9rd1pWajE0VUE5S0d4Q3EwQWFjTkdZMFhnNWVlcVRMdHdzTTVSQ1M2bmJ1K2VNWFE3U01oME0xZEFkbzRuT1l1a2FHUTY5SnpmWWEyZ05wR3hEeW5qZjE3RVZCd3hWRHJuQVNMa1ludWtJNFFuRGVyaFZvbkhZYnhqYXdsc0pSYlFuQ0tobzBNTi9PTkI0Uk5aVWYrUWxPMWtBTUNCckZVQ0VjVUx6L3NQRkN2L2dmU0tOSEh1bHJmcnphQUtzMUxBcUl6eWRsd25qRFFaa1hqbFVhaE9ybXB5eUZpZlI5UWQ3NWZuSGpaa0JySXJMcGE0QXM4azhZdFFGNUpHMmZpOEowK2xtREJHYVdIY0dxQnc4dnBvQU80ZGJKY243QlNmZk15VXNSZ3BwMjExUElZR2dqT2R6bGRmV2x5NHJVdWs2djQ4UndhSGszL01QVzFyNllHRmJjb2JjSGwyOGxTQnAyQ0xkR21uMmZKaEg2WXhPY29vYTZnd1pyN3E2OEZxYmVTemZxOVpLYzVTWThHYm8zWm1IUUtpak9uajVCaTVGNElNQWxkbHM4czhXSDd1eW8yZDR4Q1ZoRjQ1ZGFhanFOcjJEV1dPeGhkM3Z5UDNYTldCbHhwYThRQXpKemlmeHNwT09TNFRMSEt3YlA4TklUSUtNMm9BWCtTWE1uT1pFRjMzREtQYW1vR0tzZVBGUDVzaGk0cVlYK0NmYzBCbXA1UDhXeTRVSkFXazJIYXpjWVIzVUhqNnJ0NUw5UjIrRzI0ZVdMY1hOcU90MWJ0WTBuK2JBSHRWR1pmUXFmVHJOT3V0bVdWUGg4di9naDk4VGR6MWs0VXgwR2hIakN3bDM1ZC9KZ1Y0YWx2K1lnVVQrendDL3VLbW1neTRKVHp1QzgvZEEyb0x0NUlJS3BhK1JGY3EwcHZJZ2Y0a29QYWhaR2w0Y3cyN0ZBb0xGWkJTUU91bUVVV0JHV2xrdnlnZ1JuN3k3RXFqRmxsbWNVSGdPaEVJNHIvUUxxQnF0R2hGZHljVFk4Q3hDWVNKbmxFM3QveDBDdC8xQlAxalhQTDhqWVlRZGZFTjFjeitFMzJ6U3pOY09oNlVLWTliSHVrUFRxZHBjenlDaDZ3ZVBVZFhyKzQzaDM4SUg2OThLZ04zN2kySVdnOWRYdHZNKzFqVWRaNFlrZWNoaWw1eUNLWjBwaXNBbEoyUU1ORDZadGtRY2FjdnNLWTBCTXBkNi9hZXlCaEczZTcyZmdJS0xISFpPZEpMZlhTTE82U2FNeGRKSjhxcTVzSG5RZjIwZzlFT0NzS3ZDQ2NKRXhUaEcxWHA1N0d0TGp0MWV0TUtLM3hUQkdhK29xSHpBbTArYlF5NjN6WjdoSDBmc1NRUXcyaVQ1YkVabzc2bGNVZ3JKMkxWd1drcklycHV6UWZKeEU0NU8yQTQzZG1Ic0NXU3ZOR3ZFT2Y1aWdnVDE1cEJ3VGJzU1BaVTJ2VE1mcSswUExsWVNaOVJlOE94c3ZCSDZNR25sWlk1ZFFkcWpEMmE2cFcyNVgxUGk4Mld5ZnlCc3dTUE5PM3U2SFQrbEgwL25rWnlFdm5IUDBZdEFXVk1hKzZnN1hINUF4OUJ4cTUxNUQ0Vm9iOGpTcGIzMmd0aU1oMmFzZjhwOCtla0d3RzQxM2JoUERxZWx3b1dJUGVyK2w3OEJzaWVHbzhqVUdCUHV1cHJzcFAyZTJ5NkI3U1MyT3hxcEJZVUk0cGlIZHI0VlVyQnFBclRqak9HbThtZ1pqSDk3am9GUVBHSU1RUm1OQTBBbWljUTR5VU9ZYXlKaCs1aVpzWGJBMExQVnRVaGV3aWgrU1UyYUhUOUhKOHREVWJISU9pQWxYOWlueW9DdXhldGpZaWpNM21mSGsxNkFNVTU2c1o1MHN0N0N5K1UxNmpBbHJWdVp1aW44ejlVSjdJWGgxbzkrbTNhRUE0MWtTRE4rdHIxN24rY2IwZXluenZ0Rk1DWjk4OWNPMGVVYzZmYlByT2p4aE92bGlUWWZiVCtoNDg0WHpuSjZLUDZEeFNodi9WbU4zMEhXUXVrNlA2NGZhblpGd3JsZTFjVzVXZHlEdjB1SCtNMHE3ZVBSQ1FDZEt6NFpKZ3FiekE3ZXhIN3NRc1A1SWw4OFh4SEJvNDJsMy9mTGtsU2lCVTNRK2N1dk1ROXZUZUZZVFppd09UTFVsR3l3Tm5hUTlpVHRyaDl6WnF4M0MyVW5HT1lRYlpCSkJtNWlkdFZPbmNLWDAyZ3VaS1VKamtDRkQwSkZNSW1nVFUzTEluVXlOUXgzTzhveSt4R3lQWXE1ckpVZ2MwdnNRMUsydHY3VVdKcjVGbmdXY085bFIzT3NZbGYrMlcxTGhrRDg3ZHVUY09UM3Y1Q0tuMWFLTXQ1RVJhN1lid1hHUklQNVZLQnRubmJBMEpITWplR1p5ZndZT1liMmJGRnZPb3ZHaU5jNHlnUExtMW9sTGcxT2Rsd1FsZlF0bGtqcEZudWlUd3ZxVDlHOXJQQlNjN3BaTTN0L0dNVzY4N0dYMjhsOWk4NnM3M1BJUHRYR3dPT1hYZHdYa243a1NHd3Q1UU01ZVZobmlVd2ZsekpVbzYvb3UzemVxMmhpdmc0d05wQWVOaTA0MVh4Rk9oRHdMQXhML1RGZUdSL1QzU21YZkJrRTBLTWFyNDNTanVJcVRkYUx0Z1pEaDNkYXpELzhLQkpWQi8xTHFhQ1QvMEhGTjd6Z1NEd1NnY0NxSTZRQkUxQlN1N0taUDVwN1pXRFVvby9GQUFQSkN2NW52RTRkL3Q2S3Y4ZFAxNENDK1dWcmYwdTkxaGFGWWhlcC9jVWp5N3lkcTdabURDTURBVWRRN3pVM3gxUXdQVmZsME4wVytyU1F6MzFhVW1UL2RMU29maGN2dlRIV1Jmd2ZyTWN3dWJPWTgrTHhhbkhGMnNBa0phMkdTa25uZmpOd3Z2VFdwMXlZdytSTTloN0Q4NWFGcGFpaC9ubDlzL2x5LzJHcmt0YjZiaExkMGtlODJqYS80MStxZ2xCbmcxWTYrMUdvSjBuam1EWE1vdjZXbDVibngyb3AwWDJpNkdENm51cDIvSHhuZVRXMnZVOXZCLzdTeE95QVFaNXV3NTloWkt5YUdENmRRS1BKN25EekJVcGl3aW93am9MTFdSV1R2eENxZGFIdWdpZlNST1pjcEE4TEFrVW80VlZCMVFoTTJqdFNBV2xHdnU4QXYvbldZS2JNV0pFYmhaSjJNMW9BQUZDYk5NdFI2aDRkOGJ4VGU3TUZaaGsxejg1V25sZ1NueEJvNVNlamVIaFlyKytxUi9IM25aL0kzSTFQNWltdDJrZ3g1WldXbnpoM1RndlF5SVRJTTNPbjFsVU84Q3puZXFZZjJnanJiMXlKMzdLWGYyRDF5L0p6TnJvckdNN3NQTkJXWFZSeHIzRlBSRkxTcnZMR3F2dm1OU1BwQ3Z4WmFPdFhQMVhmNnJhM3I4bnk5R28xdHRBMm51b1AzWFgyWFgvSHJWOVJHT0R2TkduRldBVk01OERwRE50M0lZTUZ4b1gvQ3YwaUZvUmorKytEMEVycG5HUXArUXRHWHhwd0lhaXlsVU11QWpKd2pyT0czSEdCTVlZRUczTnZ2WWtDQWE1UjZ0cG1MdkJHMnkrQWtuVXptU0pkQTJjWklVR2hDN2F4N2VkZ0dCS3dTWnpiQXVYQ1BjTy9JWS96QWoyZW0wVWZEV3JuYUNKVlpZZVlTK1Ruc3ppYlA2YzRHVGY2R01CSmQ4MU9iNEtSQ1FYSlp2K2VzQzlYMm80YmN1SzM3WUt3TEwrejFsY2VVcVcxTThKTGZBdi80S3k1eCtVRjNidDBwM3RkQXI3bVZsTmZMZHI5d2ZNZnpMemFkT1ZCOXB0KzAva05KMDlYa1owOWRqbDNYMkMyc3FPbmcvNHNZREJvUDBjZWFkdjdOMm5hM2JkVVhCQ2I0RkExQ29mQkpFNTdzQ2xRVWl2bC9JcHNpMTBoem1rZ0lBUlczTENTbDM0cTlMdEwzVkMzaXh4ZFpqNlVjUGZzSFRZZ0tLL2drM1R1MXlMcTJkZURMWmZlQ2R2bUMxRkpyZUg4SHE0WUYvTWcvT1IvRVJiWHRubjg3QVlDMW8rVmhxZFkrS1R1M29YRmRPWHBlV2hKV1Bzc2pxandrYjIvdXhnaTE5VWhlcjlBRzNrYUYzNXdJeU5oWk1JMHZwOHZXUjJWRCtZc0RrOHY1aVlWQ1ZDY0RmcmlUVUxMdmlDOXpQT3BiZHVEWXZ2cW1ON3hMOWg1VjBzcXg1TXlmWlU1VmJTNkswMWRpbHJkMEtvZjlvaFRoekYvVDlWdXVLR2NlN3ZSVk5GNE1lcWUyMC9VcU1Sb3QrUVdOY1Q2b2JYY1ZuZnViV3VlL05sa2p6ZlludmMxMDlCQWd6WkFqQ2tLZk5WdFBwcnRIWGN0K3Z2SGhmZ09SNWZHaDVYM2xsQ01YZk42SGhsN1Q3dm90R3RDLzA5Z05odUNtT1BnZVIxeU5CSTRITzV3MHg0WXVRUjQ2NTUxRDczSGVPZHpsMWF1OTdhYTZ6Mmg2VU5qMlFVTlh3T0c2YnErNzdpdUwzN3YzNldsdVNucGZHTXowWkpZM2JQSlBMMzNSd0NIOE5oTnowek52dHhkNHgraGMvR05oZVdBMFhCRElxOXA0eDlGNHBZY1lnMjV4dnVNelkwQjFuVjQzcTlxNHgyczYzRUpQWDFJc3dVVVBDNWZZd2hJd0VnalJuR08ydHMvM2pUdkdlQjBjdXFFUWJycDdaQ2JPenNMeThISzZPM0Z5UTVkL0VCcTNCSjI0SkQ1eXBNdnJGRElRUmpyZ3lEMTEvR0xvcVgzbmdndGNzd1RVeWtnaDVSaVQrdTdlK2xkMXp0c1BSVkRlSGlzREI5RTNZQ3d3cTJYdXJxQU5Sek5nUk1iRFZSVzhock96c0R3NjhHSUtFZ3lkNGY4Q3dRNWdKYlVoSXFjaElHUDNYVU0yQXV4OU1uU1d2TWw0bXY2aWg4cUVLVW9UWGtRR3pzN0M4dWdSc25tUDZ6UytndDR3Q1Y0RHllMFpYdEgvYXhXWWRIQ3RPRWZNalNuZ0ZOV2U1aFJWblVESEV4eGwwWXVjU1k0U2pyMWk4NzRaSHFvL0RXWThzTzVpekpGK0U1aGRsb292dzhMeTZGSjgrSlN4VFZCU2hSRkhxbmtuUlRzRWd4L2FnRlY0OENpd3JhUnZYeGd6em9IUFRCcnpDekFXSHNybTdUV25SelNPWW1INTFRT0xiVE85b2wrWTRpTFgvTnVTdnVQZ1FveHBDazkyMjlRMTRpV09JbzgxSEpiSEcrV095a251OFlXNUs4UFNMMDdoeXY0T0srR013WUNuWWJiWHdBdGw1dTZLTHl3RmlXMUxRMU5UMTh2U2gvVVRVQ3dzanhXd2NtMHJ5akxXNTRpTTlXMlJ3QkVKcEZXMjNQMi8yYkd3c0xDd3NMQ3dzTEN3c0xDd3NMQ3dzTEN3c0R3YVRKandIK1FkblNJbWprM3dBQUFBQUVsRlRrU3VRbUNDKTsKICAgICAgICB9CgogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBjbGFzcz0iIj4KPGRpdiBpZD0icGFnZS13cmFwcGVyIj4KICAgIDwhLS0gSGVhZGVyIFNlY3Rpb24gLS0+CiAgICA8aGVhZGVyIGlkPSJoZWFkZXIiIGNsYXNzPSJjYW52YXMiPgogICAgICAgIDxzcGFuIGNsYXNzPSJsb2dvLWVtdmNvIj48L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxvZ28tYmFuayI+PC9zcGFuPgogICAgPC9oZWFkZXI+CgogICAgPCEtLSBNYWluIENvbnRlbnQgU2VjdGlvbiAtLT4KICAgIDxzZWN0aW9uIGlkPSJjb250ZW50IiBjbGFzcz0iY2FudmFzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICA8aDI+UGF5bWVudCBTZWN1cml0eTwvaDI+CiAgICAgICAgICAgIDxwPkhpIFN0ZXZlLCB5b3VyIG9ubGluZSBwYXltZW50IGlzIGJlaW5nIHNlY3VyZWQgdXNpbmcgQ2FyZCBOZXR3b3JrLiBQbGVhc2Ugc2VsZWN0IHdoZXJlIHlvdSB3b3VsZCBsaWtlIHRvCiAgICAgICAgICAgICAgICByZWNlaXZlIHRoZSBjb2RlIGZyb20gWW91ckJhbms8L3A+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iSFRUUFM6Ly9FTVYzRFMvY2hhbGxlbmdlIiBtZXRob2Q9ImdldCIgbmFtZT0iY2FyZGhvbGRlcklucHV0Ij4KICAgICAgICAgICAgICAgIDxsYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIGNsYXNzPSJmb3JtLWNoZWNrIiBuYW1lPSJkZWxpdmVyeU1ldGhvZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9Ik1vYmlsZSAqKioqKioqKjMyMSIgY2hlY2tlZD4KICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICBNb2JpbGUgKioqKioqKiozMjE8YnI+CiAgICAgICAgICAgICAgICA8bGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBjbGFzcz0iZm9ybS1jaGVjayIgbmFtZT0iZGVsaXZlcnlNZXRob2QiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJFbWFpbCAqKioqKioqKioqQGcqKioqLmNvbSI+CiAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgRW1haWwgKioqKioqKioqKkBnKioqKi5jb208YnI+PGJyPgogICAgICAgICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXRBdXRoZW50aWNhdGlvbkxhYmVsIiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidXR0b24iIHZhbHVlPSJORVhUIj4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDwhLS0gSGVscCBTZWN0aW9uIC0tPgogICAgPHNlY3Rpb24gaWQ9ImhlbHAiIGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdyBkZXRhaWxlZCI+CiAgICAgICAgICAgIDxkZXRhaWxzPgogICAgICAgICAgICAgICAgPHN1bW1hcnk+TGVhcm4gbW9yZSBhYm91dCBhdXRoZW50aWNhdGlvbjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzdW1tYXJ5LXAiPkF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uIHdpbGwgYmUgZGlzcGxheWVkIGhlcmUuPC9wPgogICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGRldGFpbHM+CiAgICAgICAgICAgICAgICA8c3VtbWFyeT5OZWVkIHNvbWUgaGVscD88L3N1bW1hcnk+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic3VtbWFyeS1wIj5IZWxwIGNvbnRlbnQgd2lsbCBiZSBkaXNwbGF5ZWQgaGVyZS48L3A+CiAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4
Expected output is an error (as thrown by Java.Util) while android is successfully decoding it
Here is the code snippet for android method
internal fun base64UrlDecode(input: String): ByteArray {
try {
return Base64.decode(input, Base64.URL_SAFE)
} catch (_: Exception) {
throw InvalidInputException()
}
}
Upvotes: 0
Views: 88