{"action":"created","issue":{"url":"https://api.github.com/repos/solettaproject/soletta/issues/1581","repository_url":"https://api.github.com/repos/solettaproject/soletta","labels_url":"https://api.github.com/repos/solettaproject/soletta/issues/1581/labels{/name}","comments_url":"https://api.github.com/repos/solettaproject/soletta/issues/1581/comments","events_url":"https://api.github.com/repos/solettaproject/soletta/issues/1581/events","html_url":"https://github.com/solettaproject/soletta/issues/1581","id":139942644,"number":1581,"title":"Provide secure storage and private keys","user":{"login":"barbieri","id":1838,"avatar_url":"https://avatars.githubusercontent.com/u/1838?v=3","gravatar_id":"","url":"https://api.github.com/users/barbieri","html_url":"https://github.com/barbieri","followers_url":"https://api.github.com/users/barbieri/followers","following_url":"https://api.github.com/users/barbieri/following{/other_user}","gists_url":"https://api.github.com/users/barbieri/gists{/gist_id}","starred_url":"https://api.github.com/users/barbieri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barbieri/subscriptions","organizations_url":"https://api.github.com/users/barbieri/orgs","repos_url":"https://api.github.com/users/barbieri/repos","events_url":"https://api.github.com/users/barbieri/events{/privacy}","received_events_url":"https://api.github.com/users/barbieri/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/solettaproject/soletta/labels/task","name":"task","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-03-10T16:32:41Z","updated_at":"2016-03-14T14:58:00Z","closed_at":null,"body":"#### Task Description\r\n\r\nSecure storage of keys is essential in real-world products, we do not want private keys to be accessible and it is common requirement to have secure storage for important bits.\r\n\r\nA way to do it is to use Linux's Trusted Platform Module (TPM) which will use hardware whenever available. Another is to use Intel's gSSO (https://01.org/gsso) which abstracts that and bit more.\r\n\r\nWe should investigate which approach to use. gSSO looks easier to use, but brings more dependencies. We may check with @ereshetova and @jlaako which know them very well to see how to proceed.\r\n\r\nWhat we should keep in mind for Soletta:\r\n - how to make it work with posix main loop\r\n - how to make it work on micro-linux, that is, single process, without a daemon. Maybe would need different implementation (ie: `sol-...-impl-gsso.c`)?\r\n - should we expose this as a different C API (ie: sol-sso.h or sol-securestorage.h...)?\r\n - should we expose this as a set of different node types? Or have existing node types to support them, like `oauth` and `persistence`.\r\n\r\nRelevant contacts:\r\n - @ceolin (did oauth)\r\n - @edersondisouza (did persistence)\r\n - @jlaako (gSSO)\r\n - @ereshetova (gSSO)"},"comment":{"url":"https://api.github.com/repos/solettaproject/soletta/issues/comments/196351798","html_url":"https://github.com/solettaproject/soletta/issues/1581#issuecomment-196351798","issue_url":"https://api.github.com/repos/solettaproject/soletta/issues/1581","id":196351798,"user":{"login":"jlaako","id":996356,"avatar_url":"https://avatars.githubusercontent.com/u/996356?v=3","gravatar_id":"","url":"https://api.github.com/users/jlaako","html_url":"https://github.com/jlaako","followers_url":"https://api.github.com/users/jlaako/followers","following_url":"https://api.github.com/users/jlaako/following{/other_user}","gists_url":"https://api.github.com/users/jlaako/gists{/gist_id}","starred_url":"https://api.github.com/users/jlaako/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlaako/subscriptions","organizations_url":"https://api.github.com/users/jlaako/orgs","repos_url":"https://api.github.com/users/jlaako/repos","events_url":"https://api.github.com/users/jlaako/events{/privacy}","received_events_url":"https://api.github.com/users/jlaako/received_events","type":"User","site_admin":false},"created_at":"2016-03-14T14:58:00Z","updated_at":"2016-03-14T14:58:00Z","body":"gSSO depends, as the name says, on glib, gobject and gio (gdbus) that's where most of the footprint comes from. For some of the plugins also libgcrypt+libsoup(gnutls) are needed..."}}