iPhone - finalizando o vago “VerificationController.m” da Apple

Eu estou tentando implementar o novoVerificationController.m classe que a Apple lançou para corrigir o problema de fraude de compra in-app.

Como tudo liberado pela Apple, este é mais um documento vago, incompleto e mal explicado, com muitos vazios e desconhecidos que não podem ser contornados / entendidos por todos.

Eu estou tentando implementar isso, mas no final do código, vemos esses quatro 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; }

Você pode ver que a Apple estava com preguiça de implementar as funções C no final do código. Como minhas habilidades de C / C ++ são ruins, vejo que preciso implementar essas duas funções em C / C ++ e que elas devem retornar char e void (???). Outras pessoas postaram rotinas para fazer isso em SO, mas elas estão em Objective-C ou não retornando chars e void (??).

NOTA: este é outro problema que tenho: como um método pode retornar void se ele for usado pela Apple neste formulário?

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

não deveria estar retornando uint8_t?

Nota 2: outro problema que eu tenho é que apple diz que base64_encode é necessário, mas não está sendo usado no código fornecido por eles. Eu acho que eles estão fumando coisas ruins ou meu conhecimento C / C ++ realmente fede.

Então, voltando à minha primeira pergunta. Alguém pode postar / apontar um método que pode fazer o trabalho que segue os requisitos dos métodos declarados base64_encode e base64_decode? Por favor, evite postar métodos objetivo-c que não sejam compatíveis com estes requisitos impostos pela Apple.

Obrigado.