Przechowuję prywatny klucz OpenSl EVP_PKEY jako nsdata. W tym celu dokonuję serializacji w strumieniu bajtów, używając kodu poniżej:Konwertuj NSData na ciąg?
unsigned char *buf, *p;
int len;
len = i2d_PrivateKey(pkey, NULL);
buf = OPENSSL_malloc(len);
p = buf;
i2d_PrivateKey(pkey, &p);
gdzie pkey jest typu EVP_PKEY. to jestem przechowywania bajty z bufora „p” jako NSData pomocą wiersza podane poniżej
NSData *keydata = [NSData dataWithBytes:P length:len];
Teraz jestem przekształcenie go do NSString przy użyciu kodu podanego poniżej, ale kiedy je drukować na konsoli jej daje pewne inne postaci.
NSString *content =[ NSString stringWithCString:[keydata bytes] encoding:NSUTF8StringEncoding];
Czy ktoś mógłby pomóc?
Zasadniczo chcę zapisać EVP_PKEY do bazy danych sqlite
jestem na dobrej drodze? Dzięki.
Co masz na myśli mówiąc "inne postacie"? Czy jest to drukowanie dodatkowych znaków na końcu, których nie powinno tam być, czy może drukowanie zupełnie innych znaków, niż się spodziewałeś? –
To całkowicie różni się od tego, co ma być – Zach
Czy jesteś pewien, że dane są w rzeczywistości kodowane w UTF-8? Nie jestem zaznajomiony z i2d_PrivateKey, ale twoje wyniki sugerują, że nie używasz właściwego kodowania. –