iPhone - finalizacja niejasnego „VerificationController.m” firmy Apple

Próbuję wdrożyć noweVerificationController.m klasa wydana przez Apple w celu rozwiązania problemu oszustw związanych z zakupami w aplikacji.

Jak wszystko wydane przez Apple, jest to jeden bardziej niejasny, niepełny i źle wyjaśniony dokument z wieloma pustkami i niewiadomymi, których nie można obejść / zrozumieć każdy.

Próbuję to zaimplementować, ale na końcu kodu widzimy te cztery metody:

- (NSString *)encodeBase64:(const uint8_t *)input length:(NSInteger)length
{
#warning Replace this method.
    return nil;
}

- (NSString *)decodeBase64:(NSString *)input length:(NSInteger *)length
{
#warning Replace this method.
    return nil;
}

#warning Implement this function.
char* base64_encode(const void* buf, size_t size)
{ return NULL; }

#warning Implement this function.
void * base64_decode(const char* s, size_t * data_len)
{ return NULL; }

Widać, że Apple był leniwy, aby zaimplementować funkcje C na końcu kodu. W miarę jak moje umiejętności C / C ++ śmierdzą, widzę, że muszę zaimplementować te dwie funkcje w C / C ++ i że muszą zwracać char i void (???). Inni ludzie opublikowali procedury, aby to zrobić na SO, ale są albo w Objective-C, albo nie zwracają znaków i void (??).

UWAGA: jest to kolejny problem, jaki mam: w jaki sposób metoda zwraca wartość, jeśli jest używana przez Apple w tej formie?

uint8_t *purchase_info_bytes = base64_decode([purchase_info_string cStringUsingEncoding:NSASCIIStringEncoding],                                                 &purchase_info_length);

czy nie powinno powrócić uint8_t?

UWAGA2: Kolejnym problemem, jaki mam, jest to, że jabłko mówi, że kod base64_encode jest wymagany, ale nie jest używany w dostarczonym przez niego kodzie. Myślę, że palą złe rzeczy lub moja wiedza o C / C ++ naprawdę śmierdzi.

Wracając do mojego pierwszego pytania. Czy ktoś może opublikować / wskazać metodę, która może wykonać zadanie zgodne z wymaganiami zadeklarowanych metod base64_encode i base64_decode? Proszę nie publikować obiektywnych metod, które nie są zgodne z tymi wymogami nałożonymi przez Apple.

Dzięki.

questionAnswers(3)

yourAnswerToTheQuestion