char *cred_str;
char *subject_pkey;
char *issuer_pkey;
+ char *signature;
+
if (data_size < sizeof (struct GNUNET_CREDENTIAL_CredentialRecordData))
return NULL; /* malformed */
memcpy (&cred,
cdata = data;
subject_pkey = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred.subject_key);
issuer_pkey = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred.issuer_key);
-
+ GNUNET_STRINGS_base64_encode ((char*)&cred.sig,
+ sizeof (struct GNUNET_CRYPTO_EcdsaSignature),
+ &signature);
GNUNET_asprintf (&cred_str,
- "%s %s %s",
- subject_pkey,
+ "%s.%s -> %s sig:%s",
issuer_pkey,
- &cdata[sizeof (cred)]);
+ &cdata[sizeof (cred)],
+ subject_pkey,
+ signature);
GNUNET_free (subject_pkey);
GNUNET_free (issuer_pkey);
-
+ GNUNET_free (signature);
return cred_str;
}
default:
char subject_pkey[enclen + 1];
char issuer_pkey[enclen + 1];
char name[253 + 1];
+ char signature[128]; //TODO max payload size
+ struct GNUNET_CRYPTO_EcdsaSignature *sig;
- if (3 != SSCANF (s,
- "%52s %52s %253s",
- subject_pkey,
+ if (4 != SSCANF (s,
+ "%52s.%253s -> %52s sig:%s",
issuer_pkey,
- name))
+ name,
+ subject_pkey,
+ signature))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Unable to parse CRED record string `%s'\n"),
GNUNET_CRYPTO_ecdsa_public_key_from_string (issuer_pkey,
strlen (issuer_pkey),
&cred->issuer_key);
+ GNUNET_STRINGS_base64_decode (signature,
+ strlen (signature),
+ (char**)&sig);
+ cred->sig = *sig;
+ GNUNET_free (sig);
GNUNET_memcpy (&cred[1],
name,
strlen (name));
gnunet-identity -C testsubject -c test_credential_lookup.conf
SUBJECT_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep testsubject | awk '{print $3}')
ISSUER_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep testissuer | awk '{print $3}')
-EXPECTED="$SUBJECT_KEY $ISSUER_KEY $TEST_ATTR"
#TODO1 Get credential and store it with subject (3)
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=testissuer --subject=$SUBJECT_KEY --attribute=$TEST_ATTR -c test_credential_lookup.conf`
+$DO_TIMEOUT gnunet-credential --issue --ego=testissuer --subject=$SUBJECT_KEY --attribute=$TEST_ATTR -c test_credential_lookup.conf
+STATUS=$?
gnunet-arm -e -c test_credential_lookup.conf
-
-if [ "$EXPECTED" == "$CRED" ]
-then
- exit 0
-else
- echo "FAIL: Failed to issue credential, got $CRED."
- exit 1
-fi
+exit $STATUS