this->signer->set_key(this->signer, k_auth);
this->crypter->set_key(this->crypter, k_encr);
+ charon->sim->key_hook(charon->sim, k_encr, k_auth);
+
this->derived = TRUE;
return chunk_clone(msk);
}
this->signer->set_key(this->signer, k_auth);
this->crypter->set_key(this->crypter, k_encr);
+ charon->sim->key_hook(charon->sim, k_encr, k_auth);
+
this->derived = TRUE;
}
{
attr_t *attr;
- attr = malloc(sizeof(attr_t) + data.len);
- attr->len = data.len;
- attr->type = type;
- memcpy(attr->data, data.ptr, data.len);
+ if (!charon->sim->attribute_hook(charon->sim, this->hdr->code,
+ this->hdr->type, this->hdr->subtype, type, data))
+ {
+ attr = malloc(sizeof(attr_t) + data.len);
+ attr->len = data.len;
+ attr->type = type;
+ memcpy(attr->data, data.ptr, data.len);
- this->attributes->insert_last(this->attributes, attr);
+ this->attributes->insert_last(this->attributes, attr);
+ }
}
/**