Corrigindo hack de compra no aplicativo; preso no quarto passo

Como muitos de nós sabemos, tem havido uma situação recente com a Apple, onde os hackers são capazes de obter qualquer In-App Purchase gratuitamente. Apple lançou recentementeesse documento descrevendo como consertá-lo, mas estou um pouco confuso no passo 4 e gostaria de receber ajuda.

Os primeiros passos são baixar o patch .h e .m, incluí-lo em seu projeto e vinculá-lo ao framework Security. Ok, bom, entendi. Então a Apple diz:

4. Provide a base64 encoder, a base64 decoder, and the action to perform when validation succeeds.

O que exatamente a parte dos codificadores significa que devo fazer? (A ação a ser executada quando a validação é bem-sucedida é clara para mim.) Eu vejo as funções nomeadasbase64_encode ebase64_decode na classe, certamente. Mas o que isso está pedindo? Isso é como um número PIN especial que só eu sei, para evitar hackers? Não tenho certeza do que fazer aqui. Eu obtenho os conceitos gerais de codificação e decodificação, é claro, mas não os detalhes programáticos de como gerar um corretamente nesta situação.

O código como a Apple escreve, se isso ajudar algum:

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

Eu também estou perplexo que existem 2 funções de codificação e 2 de decodificação. Eu entendo que há um par que retornaNSString*s, mas por que o segundo par retorna umchar* e umvoid*? Quais são essas funções esperadas para retornar? Eu realmente não entendo.

questionAnswers(2)

yourAnswerToTheQuestion