diff options
| author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-01-04 09:14:01 +0000 |
|---|---|---|
| committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-01-04 09:14:01 +0000 |
| commit | e76546078f8aaba9586dd674650ad4436408186e (patch) | |
| tree | d570af127c34c45a49da47035e633e6d176b91f8 /lasso/id-ff | |
| parent | 7e22acdd2c784fd4ce279ba2a7fe79ba490d02a0 (diff) | |
| download | lasso-e76546078f8aaba9586dd674650ad4436408186e.tar.gz lasso-e76546078f8aaba9586dd674650ad4436408186e.tar.xz lasso-e76546078f8aaba9586dd674650ad4436408186e.zip | |
Core: in provider.c, add accessors for encryption informations
* lasso/id-ff/provider.c:
add getters for encryption_sym_key_type and encryption_public_key.
* lasso/id-ff/providerprivate.h:
declare new accessors.
Diffstat (limited to 'lasso/id-ff')
| -rw-r--r-- | lasso/id-ff/provider.c | 39 | ||||
| -rw-r--r-- | lasso/id-ff/providerprivate.h | 4 |
2 files changed, 41 insertions, 2 deletions
diff --git a/lasso/id-ff/provider.c b/lasso/id-ff/provider.c index fc25394e..a7df20ba 100644 --- a/lasso/id-ff/provider.c +++ b/lasso/id-ff/provider.c @@ -372,12 +372,32 @@ static struct XmlSnippet schema_snippets[] = { static LassoNodeClass *parent_class = NULL; xmlSecKey* -lasso_provider_get_public_key(LassoProvider *provider) +lasso_provider_get_public_key(const LassoProvider *provider) { g_return_val_if_fail(LASSO_IS_PROVIDER(provider), NULL); return provider->private_data->public_key; } +/** + * lasso_provider_get_encryption_public_key: + * @provider: a #LassoProvider object. + * + * Return the #xmlSecKey public key to use for encrypting content target at @provider. + * + * Return value: an #xmlSecKey object, or NULL if no key is known or @provider is not a + * #LassoProvider. + */ +xmlSecKey* +lasso_provider_get_encryption_public_key(const LassoProvider *provider) +{ + g_return_val_if_fail(LASSO_IS_PROVIDER(provider), NULL); + + if (provider->private_data->encryption_public_key) { + return provider->private_data->encryption_public_key; + } + return lasso_provider_get_public_key(provider); +} + static void load_descriptor(xmlNode *xmlnode, GHashTable *descriptor, LassoProvider *provider) { @@ -1266,6 +1286,23 @@ lasso_provider_set_encryption_sym_key_type(LassoProvider *provider, } /** + * lasso_provider_get_encryption_sym_key_type: + * @provider: a #LassoProvider object + * + * Return the encryption sym key type for this provider. + * + * Return value: a #LassoEncryptionSymKeyType value. + */ +LassoEncryptionSymKeyType +lasso_provider_get_encryption_sym_key_type(const LassoProvider *provider) +{ + if (LASSO_IS_PROVIDER(provider) && provider->private_data) + return provider->private_data->encryption_sym_key_type; + + return LASSO_ENCRYPTION_SYM_KEY_TYPE_DEFAULT; +} + +/** * lasso_provider_verify_query_signature: * @provider: the #LassoProvider for the the provider issuing the query * @message: the URL query string UTF-8 encoded diff --git a/lasso/id-ff/providerprivate.h b/lasso/id-ff/providerprivate.h index ad50bade..1d4ae3d3 100644 --- a/lasso/id-ff/providerprivate.h +++ b/lasso/id-ff/providerprivate.h @@ -71,7 +71,9 @@ int lasso_provider_verify_signature(LassoProvider *provider, const char *message, const char *id_attr_name, LassoMessageFormat format); gboolean lasso_provider_load_public_key(LassoProvider *provider, LassoPublicKeyType public_key_type); -xmlSecKey* lasso_provider_get_public_key(LassoProvider *provider); +xmlSecKey* lasso_provider_get_public_key(const LassoProvider *provider); +xmlSecKey* lasso_provider_get_encryption_public_key(const LassoProvider *provider); +LassoEncryptionSymKeyType lasso_provider_get_encryption_sym_key_type(const LassoProvider* provider); int lasso_provider_verify_saml_signature(LassoProvider *provider, xmlNode *signed_node, xmlDoc *doc); int lasso_provider_verify_query_signature(LassoProvider *provider, const char *message); |
