|
|
|
@ -25,15 +25,15 @@ struct rdf_enum types = {
|
|
|
|
|
.filter = type_filter,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct rdf_serialize_field serial[];
|
|
|
|
|
struct rdf_serialize_field ap_activity_rdf[];
|
|
|
|
|
|
|
|
|
|
static struct rdf_serialize_field activity_ref_types[] = {
|
|
|
|
|
{ (char*)apaot_ref, offsetof( struct ap_activity, object.ref ), &rdf_string_field },
|
|
|
|
|
{ (char*)apaot_activity, offsetof( struct ap_activity, object.ptr ), &rdf_object_field, &serial },
|
|
|
|
|
{ (char*)apaot_activity, offsetof( struct ap_activity, object.ptr ), &rdf_object_field, &ap_activity_rdf },
|
|
|
|
|
{ NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct rdf_serialize_field serial[] = {
|
|
|
|
|
struct rdf_serialize_field ap_activity_rdf[] = {
|
|
|
|
|
{ "", offsetof( struct ap_activity, id ), &rdf_id_field },
|
|
|
|
|
{ "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>", offsetof( struct ap_activity, type ), &rdf_enum_field, &types },
|
|
|
|
|
{ "<https://www.w3.org/ns/activitystreams#actor>", offsetof( struct ap_activity, actor ), &rdf_string_field },
|
|
|
|
@ -44,48 +44,58 @@ struct rdf_serialize_field serial[] = {
|
|
|
|
|
{ NULL, sizeof(struct ap_activity) },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void debug_quad( struct rdf_quad* q )
|
|
|
|
|
{
|
|
|
|
|
printf( "%s %s %s %s\n", q->subject, q->predicate, q->object, q->graph );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void debug_emit_quad( struct rdf_serializer* rs, struct rdf_quad* q )
|
|
|
|
|
{
|
|
|
|
|
printf( "%s %s %s %s\n", q->subject, q->predicate, q->object, q->graph );
|
|
|
|
|
|
|
|
|
|
rdf_quad_free(q);
|
|
|
|
|
}
|
|
|
|
|
struct rdf_serialize_field ap_activity_signature_rdf[] = {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void ap_activity_create_rsa_signature_2017( struct ap_activity* act )
|
|
|
|
|
char* serialize_normalized_object( struct rdf_serialize_field* layout, void* object, size_t* result_size )
|
|
|
|
|
{
|
|
|
|
|
printf( "ap_activity_create_rsa_signature_2017\n" );
|
|
|
|
|
|
|
|
|
|
// Serialize activity to RDF
|
|
|
|
|
struct rdf_serializer rs;
|
|
|
|
|
memset(&rs,0,sizeof(rs));
|
|
|
|
|
char* subject;
|
|
|
|
|
asprintf( &subject, "<%s>", act->id );
|
|
|
|
|
rs.subject = subject;
|
|
|
|
|
rs.subject = strdup("");
|
|
|
|
|
rs.graph = strdup(".");
|
|
|
|
|
|
|
|
|
|
struct rdf_memory_store* ms = rdf_memory_store_new();
|
|
|
|
|
rdf_memory_store_init_serializer( ms, &rs );
|
|
|
|
|
rdf_serialize_object( &rs, serial, act );
|
|
|
|
|
rdf_serialize_object( &rs, layout, object );
|
|
|
|
|
|
|
|
|
|
// Normalize
|
|
|
|
|
struct collection_iface i;
|
|
|
|
|
rdf_memory_store_as_collection( ms, &i );
|
|
|
|
|
rdf_normalize(i);
|
|
|
|
|
|
|
|
|
|
printf( "\nRDF:\n" );
|
|
|
|
|
rdf_memory_store_dump( ms, stdout );
|
|
|
|
|
printf( "\n" );
|
|
|
|
|
char* outbuf = NULL;
|
|
|
|
|
|
|
|
|
|
rdf_memory_store_free(ms);
|
|
|
|
|
FILE* f = open_memstream( &outbuf, result_size );
|
|
|
|
|
if( !f ) {
|
|
|
|
|
printf( "Error opening memstream\n" );
|
|
|
|
|
goto cleanup;
|
|
|
|
|
}
|
|
|
|
|
rdf_memory_store_dump( ms, f );
|
|
|
|
|
fclose(f);
|
|
|
|
|
|
|
|
|
|
rdf_memory_store_free(ms);
|
|
|
|
|
cleanup:
|
|
|
|
|
free((char*)rs.subject);
|
|
|
|
|
free((char*)rs.graph);
|
|
|
|
|
|
|
|
|
|
return outbuf;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ap_activity_create_rsa_signature_2017( struct ap_activity* act )
|
|
|
|
|
{
|
|
|
|
|
printf( "ap_activity_create_rsa_signature_2017\n" );
|
|
|
|
|
|
|
|
|
|
size_t activity_buf_size;
|
|
|
|
|
char* activity_buf = serialize_normalized_object( ap_activity_rdf, act, &activity_buf_size );
|
|
|
|
|
if( !activity_buf ) { return /* false */; }
|
|
|
|
|
|
|
|
|
|
printf( "\nRDF (size=%d):\n", activity_buf_size );
|
|
|
|
|
fwrite( activity_buf, 1, activity_buf_size, stdout );
|
|
|
|
|
printf( "\n" );
|
|
|
|
|
free(activity_buf);
|
|
|
|
|
|
|
|
|
|
cleanup:
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|