iPhone - finalizando el vago "VerificationController.m" de Apple

Estoy tratando de implementar el nuevoVerificationController.m Clase que Apple lanzó para solucionar el problema de fraude en la compra en la aplicación.

Como todo lo publicado por Apple, este es un documento más vago, incompleto y mal explicado con muchos vacíos e incógnitas que no pueden ser burlados / entendidos por todos.

Estoy tratando de implementar eso, pero al final del código vemos estos cuatro métodos:

- (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; }

Puedes ver que Apple fue perezoso para implementar las funciones de C al final del código. Como mi capacidad de C / C ++ apesta, veo que necesito implementar estas dos funciones en C / C ++ y que deben devolver char y void (???). Otras personas han publicado rutinas para hacer eso en SO, pero están en Objective-C o no están devolviendo chars y void (??).

NOTA: este es otro problema que tengo: ¿cómo puede un método volverse nulo si Apple lo utiliza de esta forma?

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

¿No debería estar volviendo uint8_t?

NOTA 2: otro problema que tengo es que Apple dice que se requiere base64_encode pero que no se está usando en el código provisto por ellos. Creo que están fumando cosas malas o mi conocimiento de C / C ++ realmente apesta.

Así que, volviendo a mi primera pregunta. ¿Puede alguien publicar / señalar un método que pueda hacer el trabajo que cumple con los requisitos de los métodos declarados base64_encode y base64_decode? Evite publicar métodos objetivos-c que no sean compatibles con estos requisitos impuestos por Apple.

Gracias.