Neues Thema starten

Zertifikat der TSE abrufen führt zu seltsamen Ergebnis

Hi,


ich möchte das Zertifkat mit der Methode worm_info_tsePublicKey abrufen.

Meine PInvoke sieht so aus

 

        [DllImport("WormAPI.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
        private static extern uint worm_info_tsePublicKey(IntPtr info, [In, Out] ref IntPtr publicKey,[In, Out] ref int publicKeyLength);

und rufe es so ab:

 

 var ptr_Key = IntPtr.Zero;
            int length = 0;
            worm_info_tsePublicKey(info, ref ptr_Key, ref length);
            var key = Marshal.PtrToStringAnsi(ptr_Key, length); 

 

nur glaube ich das dieses Ergebnis nicht stimmen kann:

 

�dù>§£©È-MVѼP¤˜±l’,]Y’ò�

ñå0ᬿ�£SöÏi–â�÷§{rŒ;Ë7ƒÓ‹õ#�‡1)þ�£€¢þaà�0·¥% RBŽ­úÆÓ��øÜGkÓ5í¢5!åL�]™


1 Kommentar

 Du kannst den PublicKey nicht direkt als String lesen. Der PublicKey ist ein Byte-Array, dass du dann Base64 encoden musst. 

var buff = new byte[length];
Marshal.Copy(ptr_Key, buff, 0, length);
var key = Convert.ToBase64String(buff, 0, length)

 Dann sollte auch etwas "lesbares" dabei herauskommen.

 

Anmelden oder Registrieren um einen Kommentar zu veröffentlichen