To resolve this issue, I needed to create the self-authenticating principal using the DER formatted version of the key. which is achieved by prepending the following Blob
to the decompressed public key:
let pre_string : Blob = "\30\56\30\10\06\07\2a\86\48\ce\3d\02\01\06\05\2b\81\04\00\0a\03\42\00"