<div dir="ltr"><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">Hi, </div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">Most likely this has been answered before, please bear with me. </div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif">I'm trying to use the base64 decode function in C. Below is the function. </div><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif"><br></div><div class="gmail_default" style><div class="gmail_default" style><font face="monospace, monospace">char *b64_decode(unsigned char *input, int length)</font></div><div class="gmail_default" style><font face="monospace, monospace">{</font></div><div class="gmail_default" style><font face="monospace, monospace">    BIO *b64, *bmem;</font></div><div class="gmail_default" style><font face="monospace, monospace">    char *buffer = (char *)malloc(length);</font></div><div class="gmail_default" style><font face="monospace, monospace">    memset(buffer, 0, length);</font></div><div class="gmail_default" style><font face="monospace, monospace">    b64 = BIO_new(BIO_f_base64());</font></div><div class="gmail_default" style><font face="monospace, monospace">    bmem = BIO_new_mem_buf((void*)input, length);</font></div><div class="gmail_default" style><font face="monospace, monospace">    bmem = BIO_push(b64, bmem);</font></div><div class="gmail_default" style><font face="monospace, monospace">    BIO_set_flags(bmem, BIO_FLAGS_BASE64_NO_NL);</font></div><div class="gmail_default" style><font face="monospace, monospace">    BIO_read(bmem, buffer, length);</font></div><div class="gmail_default" style><font face="monospace, monospace">    BIO_free_all(bmem);</font></div><div class="gmail_default" style><font face="monospace, monospace">    return buffer;</font></div><div class="gmail_default" style><font face="monospace, monospace">}</font></div><div class="gmail_default" style><font face="trebuchet ms, sans-serif"><br></font></div><div class="gmail_default" style><font face="trebuchet ms, sans-serif">This works well for simple b64 encoded strings like "hello world!" etc. But when I want to b64 decode the contents of a SSH public key, it fails. Returns nothing. </font></div><div class="gmail_default" style><font face="trebuchet ms, sans-serif"><br></font></div><div class="gmail_default" style><font face="trebuchet ms, sans-serif">What I'm trying to get to is the SSH public key fingerprint which is the MD5 hash of the base64 decoded part of the public key. </font></div><div class="gmail_default" style><font face="trebuchet ms, sans-serif"><br></font></div><div class="gmail_default" style><font face="trebuchet ms, sans-serif">This decodes fine. </font></div><div class="gmail_default" style><font face="trebuchet ms, sans-serif"><br></font></div><div class="gmail_default" style><font face="trebuchet ms, sans-serif">"dGhpcyBpcyBhd2Vzb21lCg=="  : "this is awesome"</font></div><div class="gmail_default" style><br></div><div class="gmail_default" style>This does not.</div><div class="gmail_default" style>"AAAAB3NzaC1yc2EAAAADAQABAAABAQC/KdcFv09+f+tJK9IZ8I+L0zG7dUINClI5v8FlHJsBPSM3DDO2DpwIg/KqZKCRH9y6lEO+QAJt2DTEq/LBZcBUCdeiX1TXPFRorX+VdZigj7av/S/UHkq2EH6hfkJB3oLA5ZOZioMOAuDv1ng/DE4pRBr+KZ2oVhGjf3wa0hWi21vTZqb3s7vh+bPf6C2eUmAQJKHvFhtBK8Xx7FxN0b7igsGbk7ObwcItfMxdzkMvuiuU/UnthFVpa8wZIObFDi3MxJuf3/R+h6R1lFMvEIrU6CWRupS7Pqkm4X3qWQfhAWbdgdbD5KAk5JLA2eWIPQQA5Uay5CeH+GXz8gCa4zaz"</div><div class="gmail_default" style><br></div><div class="gmail_default" style>What I'm I doing wrong ? </div><div class="gmail_default" style><br></div><div class="gmail_default" style>Btw in the command line both decode. Using "<font face="monospace, monospace">echo string | openssl enc -base64 -d -A</font>"</div><div class="gmail_default" style><br></div><div class="gmail_default" style>Any help appreciated. </div><div class="gmail_default" style><br></div><div class="gmail_default" style>Thanks in advance. </div><div class="gmail_default" style><br></div><div class="gmail_default" style>--Prashant</div></div></div>