#include #include #include #include #include #include #include "token/token.h" #include "base64.h" void setHashString(struct DYNTYPE_HASH * hash, const char * const key, const char * value) { struct DYNTYPE * dyn; dyn = new(DYNTYPE, DYNTYPE_TYPE_STRING, strlen(value), value); dyntype_hash_set(hash, key, dyn); } void setHashInt(struct DYNTYPE_HASH * hash, const char * const key, const int value) { struct DYNTYPE * dyn; dyn = new(DYNTYPE, DYNTYPE_TYPE_INT, sizeof(int), value); dyntype_hash_set(hash, key, dyn); } void deleteHashValue(struct DYNTYPE_HASH * hash, const char * const key) { struct DYNTYPE * dyn = dyntype_hash_get(hash, key); delete(&dyn); } int main(int argc, char * argv[]) { struct CRYPT * crypt; struct PACKET * packet; struct DYNTYPE_HASH * data; struct DYNTYPE * _clear; struct json_object * json; const char * json_str; char * encrypted; char * b64d; char pass[] = "1234"; size_t length; packet = new(PACKET); packet_setHeader( packet, new(DYNTYPE, DYNTYPE_TYPE_INT, sizeof(int), time(NULL))); data = new(DYNTYPE_HASH); setHashString(data, "#C#", "this comes from C"); setHashString(data, "usr", "ppohg"); setHashString(data, "pas", "yyyyy"); setHashInt(data, "val", 321); packet_setData( packet, new(DYNTYPE, DYNTYPE_TYPE_HASH, sizeof(struct DYNTYPE_HASH *), data)); json = toJson(packet); json_str = json_object_to_json_string(json); length = strlen(json_str); crypt = new(CRYPT, MCRYPT_RIJNDAEL_256, MCRYPT_CFB); encrypted = crypt_encrypt(crypt, json_str, pass, &length); delete(&crypt); json_object_put(json); b64d = calloc(BASE64_LENGTH(length), sizeof(char)); base64_encode(encrypted, length, b64d, BASE64_LENGTH(length)); free(encrypted); b64d = realloc(b64d, BASE64_LENGTH(length) + 1); b64d[BASE64_LENGTH(length)] = '\0'; printf("%s\n", b64d); free(b64d); deleteHashValue(data, "#C#"); deleteHashValue(data, "usr"); deleteHashValue(data, "pas"); deleteHashValue(data, "val"); _clear = packet_getHeader(packet); delete(&_clear); _clear = packet_getData(packet); delete(&_clear); delete(&packet); return 0; } // vim: set et ts=4 sw=4: