18:02:53 #startmeeting keystone 18:02:54 Meeting started Tue Mar 25 18:02:53 2014 UTC and is due to finish in 60 minutes. The chair is dolphm. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:02:55 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:02:57 The meeting name has been set to 'keystone' 18:03:04 #topic Reminder: Design summit session proposals open until April 20th 18:03:32 i saw that david chadwick had a request on list for the summit - anyone know if that was captured on summit.openstack.org as well? 18:03:54 ayoung: told him to do so. 18:04:12 ayoung told him to do so.* 18:04:22 dolphm, i think he's just interested in adding on to federation, my topic should cover it 'future enhancements to federation' 18:04:22 dolphm, what he wants to discuss is in stevemar 's session anyways 18:04:26 marekd: awesome, thanks - i haven't caught up on the mailing list recently 18:04:29 ayoung: cool 18:04:37 ayoung, thanks for that reply btw 18:04:43 NP 18:04:52 #link http://summit.openstack.org/cfp/details/72 18:05:01 stevemar: s/future enhancements// # it's the design summit, anything else would be rejected :P 18:05:34 #topic icehouse-rc1 18:05:42 * dolphm CONGRATS EVERYONE 18:05:52 our list of release blockers is clear as of this morning: 18:05:54 #link https://launchpad.net/keystone/+milestone/icehouse-rc1 18:06:21 nice 18:06:22 if anyone has any release-critical issues that need to be addressed, target them to icehouse-rc1, stab me, and wave lots of flags 18:06:39 otherwise, we should be cutting RC1 tomorrow morning 18:06:44 when does juno get cut? 18:06:51 i mean when is juno open 18:06:51 bknudson: opened? 18:07:07 bknudson: as soon as we have a milestone-proposed branch for icehouse (which RC1 is created from) 18:07:13 so, tomorrow hopefully 18:07:52 and on a related note... 18:07:57 #topic keystoneclient v0.7.0 release 18:08:05 o/ 18:08:16 i'm aiming to release keystoneclient 0.7.0 tomorrow morning, along with RC1 (by coincidence) 18:08:23 w00t! 18:08:23 whoopse :P 18:08:45 we have a wishlist of reviews on the meeting agenda that we wanted to see merged prior to stamping out 0.7.0 18:08:59 as of now, they're all approved except for a couple nice-to-haves 18:09:06 #link https://review.openstack.org/#/c/82527/ 18:09:10 #link https://review.openstack.org/#/c/82886/ 18:09:13 I really wanted to get compressed tokens in there but getting shut down by Python33 issues 18:09:24 though if anyone is looking there are always a bunch of nice to haves up for review 18:09:25 region API is a nice to have 18:09:26 ayoung: ack, we'll open juno with a 0.8.0 then :) 18:10:06 jamielennox: feel free to extend the list on the meeting agenda with your top picks 18:10:26 revoke events needs to be resynced as well 18:10:36 i need to clean up the 0.7.0 block list on LP as well, and push things to 0.7.1 / 0.8.0 as appropriate 18:10:47 cool, i've still got a lot of general client reviews open so if people can spend some time on them this week that would be appreciated as i know we'll all want to get back to server when juno opens 18:11:06 jamielennox, on my list of things to do since we're looking good on RC 18:11:24 morganfainberg: ++ everyone should do the same this week 18:11:26 dolphm, On the client side, I'd be interested in people's opions about including the examples scripts such as : https://review.openstack.org/#/c/82687/ 18:11:52 stevemar was working on some oauth ones, and I am doing the same with revocation events 18:11:58 excellent, i'm around now so ping me with any questions 18:11:58 I'd be interested in feedback on not using md5 -- https://review.openstack.org/#/c/80398/ 18:12:19 ayoung: i'd love to have smaller snippets in docs, like a tutorial 18:12:36 ayoung: a bunch of big scripts require maintenance, etc 18:12:36 bknudson, looking 18:12:53 dolphm, ++ 18:13:08 ayoung: after our discussion on irc I changed the server to return the hash algorithm 18:13:08 dolphm, ayoung, is this different from keystone/tools/sample_data.sh? 18:13:09 ayoung, i think there is def. value to have the examples, but we should probably either gate on them working or make it docs 18:13:20 I mean use case 18:13:24 bknudson, i like moving to a better algorithm 18:13:45 gyee, I think it is the same use case 18:14:00 ayoung, gating on the scripts working would be my preference if we're including them as good examples. 18:14:03 there are some security standards don't allow md5 18:14:25 bknudson, I'll have to go through the patch in depth, but it looks right on a quick glance 18:14:30 bknudson, there are some don't even allow sha1 :) 18:14:34 bknudson: so is the server returning the algorithm or is it being set by config? i prefer the server set method 18:14:40 ayoung: yes, please look closely! 18:15:26 jamielennox: the server is returning the algorithm in the revocation list 18:15:44 bknudson: that seems hacky :( 18:15:58 dolphm, the server should specify the algorithm to the client 18:15:59 dolphm: which is hacky? server includes algorithm or config setting? 18:16:09 dolphm, not just a config that needs to be in sync 18:16:15 morganfainberg: as part of the revocation list? 18:16:24 bknudson: so do we need the CONF.hash_algorithm? 18:16:28 dolphm, probably. it's a clear indication of what we used 18:16:30 the algorithm also applies to the tokens. 18:16:36 bknudson, I am fine with baking the info into meta data 18:16:40 dolphm, there is prior art (look at passwords in ldap, {SSHA} 18:16:54 why does the algorithm matter in the revocation list? aren't we just comparing the token we have to the list of revoked tokens? 18:16:56 dolphm, it clearly identifies what the client should expect. 18:16:57 not just the tokens in the revocation list... I mean the cached tokens. 18:16:58 morganfainberg: ack, it's the same challenge with compressed tokens 18:16:58 dolphm, it is not hacky, it is essential. 18:17:16 dolphm: no i think it is better that we have it in the response than to keep the value in sync in CONF on client/server 18:17:23 dolphm, ++ yep and the same argument 18:17:26 dstanek: the revocation list contains token hashes 18:17:29 the MD5 Hash algorithm was based on an assumption that both side used it. Making it explicit is correct, and it needs to be driven by the server 18:17:54 i'm more concerned about which response the data is being crammed into, and what that affects 18:17:59 or is intended to affect 18:18:09 bknudson: ah i see, and i'm assuming we do that because it's shorter 18:18:14 I've got to admit I like the config option, it was simple to implement. 18:18:25 dstanek: the token hash is a lot shorter than the PKI token! 18:18:36 ++ 18:18:42 dstanek, yeah less data to transit usign the hashes 18:19:06 bknudson: the challenge of distributing configuration is a larger problem than just old pki vs new pki or md5 vs sha1 18:19:36 there was a proposal a summit or two ago about a centralized configuration service for things like this 18:19:56 bknudson: the first use of conf._hash_algorithm there is just for caching purposes - we don't necessarily need that to be the same as the revocation list algorithm 18:19:58 you could GET a configuration on startup, and then listen on the message bus for changes in real time, etc 18:20:00 you can store config in our policy backend. 18:20:05 dolphm, being explicit about this stuff to the client also means that non-auth_token clients could understand it 18:20:17 morganfainberg, fine point 18:20:37 take x.509 certs for example, signing and hash algorithm are part of the cert 18:20:42 morganfainberg: yeah, i like that for sure 18:20:53 dolphm: i always liked that idea but last time i tried it people suggested sticking with puppet etc 18:21:06 is the next default algorithm sha1? 18:21:08 dolphm, in cases like the compressed tokens, the TRL, etc, we should make it not auth_token specific (we control auth_token so we can do cool things with it, but being open to other tools is better) 18:21:25 jamielennox: the proposal i saw was to complement puppet/etc, not replace them 18:21:48 dolphm, sha256 is a more durable choice than sha1 18:22:17 brich1: of course, but it might not be the best choice today 18:22:22 brich1, i would argue sha1 is sufficient in most cases, but as long as we allow for sha256 (limit data transit where possible unless more durable is needed) 18:22:31 after the comments I got on the keystoneclient hashing, you can use any hash algorithm that hashlib supports 18:22:55 morganfainberg, your customers, whom had to deal with industry compliance, will tell you what is sufficient and what's not 18:23:03 hash_ = hashlib.new(mode) -- where mode is the config option (or hash algorithm from revocation list) 18:23:07 brich1: and sha512 is more durable than sha256 :) 18:23:10 we don't often get to decide unfortunately 18:23:11 gyee, and the default should be best general use-case 18:23:24 gyee, as long as the better options are easily supportable, i see no issues 18:23:41 morganfainberg, sure, pick a reason default and allow it to be configurable 18:23:41 gyee, many deployments don't need the overhead of sha256 18:23:45 reasonable 18:23:47 morganfainberg: ++ 18:23:58 gyee, so i'd say sha1, and we can evaluate the default each release :) 18:24:04 that's what bknudson's patch is all about 18:24:14 dolphm, sha256 is already required by NIST (as of end of 2013), so US federal customers would be happier with that canonical choice 18:24:23 but i would like to see MD5 no longer be the default w/ bknudson's patch going live. 18:24:44 I think bknudson 's approach is correct. Lets give it asolid review after the meeting. Shall we move on? 18:24:44 morganfainberg, agree that md5 is history 18:24:50 ayoung: ++ 18:24:52 thanks! 18:24:57 morganfainberg, md5 dies in Juno 18:25:02 #topic API/Compatibility expectations for auth_token middleware 18:25:05 ayoung, +++++++++++ 18:25:09 #link https://review.openstack.org/#/c/77748/ 18:25:19 (not sure who put this on the agenda? dstanek?) 18:25:27 so this came out of a public variable change in the above link 18:25:28 me 18:25:29 jamielennox probably 18:25:33 is this the auth_token doesn't have a stable interface? 18:25:38 convo 18:25:52 gyee: just saw your comment - that's the first time i've heard of anyone extending auth_token at all 18:25:53 erm public 18:25:56 do we care about people subclassing auth_token middleware and keeping a stable interface for them? 18:25:59 morganfainberg: yes 18:26:01 I think that one is safe 18:26:04 my impression has always been no 18:26:25 so long as we maintain the config options and the ENV variables we set the actual implementation of the middleware was fair game 18:26:25 auth_token should not have a stable interface, as it is a wsgi pipeline component 18:26:29 I feel like we should break up auth_token into comething more consumable 18:26:31 but i realize i've never had that clarified 18:26:34 but the middleware should be a blackbox 18:26:43 I guess in theory we could be breaking someone that extends it 18:26:55 ayoung, meh :) 18:26:56 my suggestion to solve this particular review is to add a @property def request_uri that logs a warning to use self.identity_uri instead 18:26:58 if we're going to have a documented interface then split that out and have keystone auth_token implement it 18:26:59 ayoung: in theory yes - i don't know anoyone who does 18:27:01 that's fine, a small change anyway 18:27:02 yeah, we would be :-) 18:27:19 morganfainberg: ++ delete most of it and replace it with the regular client! 18:27:19 dolphm: yea this one is easy, it's the principal i'm wondering about 18:27:23 gyee, that would let you pull in the bits you need and extend, but not be restricted to what the internals look like 18:27:25 dolphm, :) 18:27:25 jamielennox: ++ 18:27:35 morganfainberg, ++ 18:27:37 jamielennox, I think we have to draw the line somewhere. Internal variables are probably it. But then again, last time I decided something like this I made thingy at Dreamhost sad. 18:27:39 i brought it up in the review because i didn't know if a policy existed for kc api compat 18:27:43 lets tag the public interfaces 18:27:53 gyee, __call__ 18:27:57 dolphm: right - i would like to rip auth_token apart and if i'm stuck with a public interface that's going to get way more difficult 18:27:57 gyee, the rest are private 18:27:58 :P 18:28:53 jamielennox, this should be something communicated to the community (not that i think anyone would really have an issue with it) 18:29:06 morganfainberg, sure, add _ in front of them 18:29:23 jamielennox, just so we're not ripping the carpet out from under anyone 18:29:40 jamielennox, but i would like to claim auth_token doesn't have a public interface 18:29:52 gyee: right, i don't mind going through auth_token and making the whole thing private 18:29:56 morganfainberg: i agree 18:30:17 the only public interface i've ever considered auth_token to have is A) X-Auth-Token, B) all the environment headers passed down to the consuming service 18:30:24 dolphm, ++ 18:30:26 and that's fairly well documented in the module's docstr 18:30:48 dolphm, ++ 18:30:52 if you're going to start replacing parts of the internals of the module, i'm not sure it's in the community's best interest to support you 18:31:18 dolphm, unless "you" is jamielennox of course 18:31:33 and X-Storage-Token 18:31:40 bknudson: ++ 18:31:59 lets aim for 0.8 release to switch the interfaces to _ prefixed and communicate this change to the community 18:32:15 morganfainberg: ++ works for me 18:32:25 and clarify the documents as well 18:32:39 if someone balks we can work with them to address the concerns 18:32:41 if we find as result that it's common to extend parts of auth_token with alternative behaviors, we can take a more conservative approach moving forward 18:32:47 morganfainberg: as far as i can see there is nothing on auth_token that would be public 18:32:53 dolphm, ++ 18:33:08 what would people want to override in auth_token? 18:33:25 bknudson, no clue. i don't see a point to it 18:33:26 new headers? 18:33:27 bknudson: i've never heard of it in practice 18:33:35 gyee: ? 18:33:49 bknudson, ssl auth 18:33:58 we don't use username/password for the admin token 18:34:05 gyee, that seems like something that can be addressed with auth_plugin magic 18:34:05 we override it to use 2-way ssl 18:34:09 gyee: is that not relevant to contribute back to the community? 18:34:12 that's a good one... different methods of getting username. 18:34:23 gyee, and contributable back up 18:34:26 dolphm, yes, I am trying to contribute it back 18:34:47 gyee: in that case, you can contribute it back and we can maintain it for you :) no public interface required 18:34:52 auth_token is just a way for applications to talk to keystone so i would imagine that there are deployments with special needs there 18:34:57 gyee: that will be fixed with client + auth plugins + the loading from conf stuff 18:34:58 gyee, ssl auth should be in conjunction auth auth_token. Not to replace it. 18:34:59 dolphm, absolutely! 18:35:18 ayoung, its the same user 18:35:27 auth_token should be seen as authorization, where as SSL is authentication 18:35:30 why go through two stage auth 18:35:43 cert auth should only be used for Keystone itself 18:35:53 gyee, this really isn't different than how we handle external auth in keystone. 18:36:04 my thought is that we should have have an explicit policy or name varibles using _ (Python convention) to make this a non-issue 18:36:10 ayoung: it's never made much sense to me to require auth_token to have much in the way of authorization on keystone -- it should only be reading from keystone 18:36:18 dolphm, ++ 18:36:19 dstanek: ++ 18:36:23 dstanek, i think we're getting better about that 18:36:26 dstanek, but total agreement ++ 18:36:29 morganfainberg, we don't want to request a token and then use the it to validate other tokens 18:36:38 gyee, no meant functionally 18:36:44 gyee, right. Agreed. 100 cement. 18:36:53 gyee, just where the type of check is done. 18:37:12 gyee, it is a similar method, just in auth_token vs keystone :) [impl is obv different] 18:37:28 alrighty, moving on... 18:37:31 #topic Remove Eventlet + new non-httpd wsgi 18:37:32 morganfainberg: o/ 18:37:40 So had a chat w/ -infra 18:37:53 i was told to consider eventlet dead for py33 18:38:05 they specifically were asking if we were going to remove eventlet dep or remove py33 check job 18:38:06 yay 18:38:22 every other project is also dropping eventlet? 18:38:23 so, the general answer is we should move to wsgiref for basic standalong 18:38:34 and trollius for async/eventet/coroutine work 18:38:53 bknudson, ideally trollius / tulip is the way forward 18:38:59 trollius in 2.7 == tullip in 3.2 == asyncio in 3.3 (did i get that right?) 18:39:13 dolphm, trollius should work for all three afaik 18:39:15 what about 2.6? 18:39:17 ++ with dropping eventlet 18:39:28 bknudson, trollius = py2 i think 18:39:36 https://pypi.python.org/pypi/trollius Trollius works on Python 2.6-3.4. 18:39:37 but in keystone we don't use eventlet (really) 18:39:38 actually, ++++++++++++++++++++++++++++++++++++++++++++ 18:39:40 quote unquote 18:39:53 morganfainberg: so we should *really* get rid of the dep lol 18:39:57 dolphm, ++ 18:40:03 wsgiref is there for a reason 18:40:11 on that note i have been working on a review based on bknudson's finding - to make our py33 build work 18:40:24 both trollius and wsgiref are in the global reqs 18:40:51 won't trollius change the application design to be more callback based? 18:40:56 seems like an easy change early in juno is stop using eventlet & don't worry about the async 18:41:23 dstanek, sure, but we don't use the coroutine-like stuff in eventlet 18:41:30 I don't think the monkeypatching got us much anyways since it'd block on sql 18:41:35 2.6 can die, I think 18:41:38 i like the dropping of eventlet, lets leave trollius alone until there is more consensus on how to use it 18:41:51 2.6 was needed for RHEL6, but I think with collections we can get away from that. 18:41:53 the basic premise is either remove eventlet or remove py33 check for keystone in the near-term 18:42:07 but we can drop eventlet from keystone if we use a different wsgi impl 18:42:09 Let's drop the py33 check for stable/icehouse 18:42:10 Apache HTTPD 18:42:12 what about our use of subprocess? 18:42:26 bknudson, no question for I, this is for Juno 18:42:27 dstanek, we'd need a trollius compatable hach 18:42:29 hack 18:42:31 bknudson: stable won't have it, i don't think 18:42:39 dolphm, ++ stable shouldn't 18:42:43 it would be non-voting anyway, which is pointless 18:43:08 dstanek: what's wrong with the use of subprocess? 18:43:32 dstanek: i don't think that pyopenssl has the CMS stuff we need does it? 18:43:57 morganfainberg: in the patch i'm working on we would not need to drop eventlet - certain tests would not run until it was dropped though 18:44:00 there's also pycrypto 18:44:08 dstanek: i'm longer term hoping that python cryptography will be the way we do that in a library but it will be a while 18:44:09 jamielennox: not as far as i know 18:44:23 dolphm: i don't think pycrypto does cms, but could be wrong 18:44:33 doesn't yet 18:44:34 dstanek, it is still a requirements, if it 18:44:38 bknudson: we use eventlet's patching so that we don't block on subprocess calls (or at least as much) 18:44:41 's in requirements it would fail check 18:44:42 #link https://www.dlitz.net/software/pycrypto/api/current/ 18:45:07 dstanek, because eventlet can't be installed in py33 18:45:10 as far as i could tell one of either pycrypto or pyopenssl did everything we needed it to, but choked when it came to the arbitrary string manipulation we were doing in the middle 18:45:18 ayoung: yep that's what i though pycrypto never really dealt with certs 18:45:18 morganfainberg: it won't be in the requirements :-) bknudson found a neat trick that oslo seems to be using 18:45:19 only signature it does is PKCS#1 which is not CMS 18:45:46 without trollius we'll block on subprocess calls. I assume that we'll have figured out what will work for us by end of juno 18:45:53 dstanek, i look forward to seeing it, but i'm skeptical of it not being in requirements 18:46:07 dstanek, i think that is going to cause us issues w/ deployments unless we really drop the dep on eventlet 18:46:15 bknudson, Apache HTTPD preform blocking on subprocess calls is OK 18:46:30 bknudson: i don't think tollius help us there which i why i brought it up; it would be nice to just get rid of them anyway 18:46:32 ayoung: but it forks a few keystones? 18:46:52 ayoung: the choice to use CMS is fairly arbitrary right? why not use something that is built into a popular python package? 18:46:58 No 18:47:10 CMS is the closest thing to a standard signature algorithm there is 18:47:16 dolphm: not really - and there isn't much else 18:48:00 PKCS1 v1.5? RSA + SHA1 signatures 18:48:01 CMS is not an algorithm, it is a spec 18:48:06 gyee: correct 18:48:06 OK...I promise to do a blog post enumerating all of the details around CMS. 18:48:25 in theory, you can sign anything in any format, just may not be *standard* 18:48:45 or it's a different arbitrary "standard" 18:48:50 PKCS1 is not a very well supported approach. I was surprised to see it in pycrypto 18:49:13 CMS is S/MIME and pretty much the widest deployed signature approach 18:49:26 i know, lets make our own new standard... everyone will switch to it..because..... /xkcd 18:49:39 signing basically means, 1) canonicalized the data, 2) hash, 3) encrypt with private key 18:49:51 ayoung: do you have any data to back that up with regard to consumers that we care about? 18:49:53 PKCS #7 Is a standard. 18:50:24 xkcd ftw! :D 18:50:44 dolphm, PKCS1 is not a signature standard per-se, it is well: http://en.wikipedia.org/wiki/PKCS_1 18:51:02 what system besides keystone (including kc middlware) cares about the encryption spec? 18:51:07 i never reallised that pycrypto had pkcs1 18:51:16 http://en.wikipedia.org/wiki/S/MIME 18:51:17 given that we don't embed the certificates in the token it really is no different 18:51:23 dstanek, this is the open standard argument i just made 18:51:28 dstanek: ++ 18:51:36 dstanek, for hashing algorithm 18:51:43 keystone cms isn't really standard either? it strips off the header/footer -- http://git.openstack.org/cgit/openstack/python-keystoneclient/tree/keystoneclient/common/cms.py#n144 18:51:53 dstanek, we want to be as open to not using "our method" as possible. 18:51:54 dstanek, yeah...we have end users that kinds of care about this stuff 18:51:59 morganfainberg: but tokens are opaque and only keystone needs to know their details right? 18:52:07 dstanek, auth_token needs to know it 18:52:23 dstanek, and if auth_token needs to, non-keystoneclient tools might 18:52:31 ayoung: as far as i can tell, you're obfuscating their interests rather than advocating for them 18:52:35 dstanek, java clients need to understand it too 18:52:46 bknudson, I could probably make due with straight RSA calls instead of using the CMS call. 18:52:47 so yeah, guys like jcloud may want us to use a standard approach 18:53:04 gyee: http://stackoverflow.com/questions/7611383/generating-rsa-keys-in-pkcs1-format-in-java 18:53:08 once we start talking compressed tokens... 18:53:09 ayoung, moving to straight RSA calls might be a good alternative 18:53:16 actually, there is more than just that 18:53:25 there is the format of the Data, including where to find the certificate sin side 18:53:26 gyee: that may be a good cenversation to start having then - to see what they really need/want 18:53:30 ayoung: well it means that we loose the CA 18:53:47 which given the distribution method may be a problem 18:53:51 yep 18:53:58 may = will 18:54:02 no, we want to stay with CMS as the basic format 18:54:23 drop the custom base64 butchery 18:54:30 ayoung, ++ 18:54:36 ayoung: ++ 18:54:38 but we need to be able to tell "who signed this" from the doc itself 18:54:47 ayoung: straight to DER and then base64 it ourself 18:55:00 jamielennox, with a little zlib in between 18:55:06 then what are we gaining from this? 18:55:16 https://review.openstack.org/#/c/71181/24/keystoneclient/common/cms.py 18:55:21 ayoung: the choice to use CMS is still undefended and arbitrary 18:55:34 if we are stuck with cms then someone should dust off their C skills! 18:55:38 dolphm, lets use gpg and expect to interact with the gpg binary 18:55:44 dolphm, its like democracy. The worst option except for all the rest 18:55:53 dstanek, M2Crypto yo! i mean... 18:55:55 dstanek, extra $$ on the consulting side :) 18:56:19 i dont see CMS as a problem other than python crypto libraries are crap 18:56:20 m2crypto! 18:56:22 can we have a new lib: YUNoCrypto 18:56:27 dstanek, I actually have enlisted jdennis as the python-nss maintainer to get better CMS support there 18:56:43 gyee: you're welcome to it 18:56:49 if you use m2crypto and pyopenssl and pycrypto together then you get security++ 18:56:50 python-cms? python-smime? 18:57:05 ayoung, probably a good idea, smime 18:57:16 dolphm, security++++ 18:57:19 jamielennox: and unfortunately our primary consumers are in python 18:57:30 jamielennox: making the arbitrary choice rather poor 18:57:38 ayoung, don't like python-cms, it's not really descriptive of waht you're doing, cms is the standard smime is the impl 18:57:39 dolphm, the Python crypto story is not clear at this point 18:57:53 python-cms would be too confusing - not another content management system! 18:58:02 dstanek, ++ 18:58:03 ++ python-smime then 18:58:12 ayoung, i 18:58:15 k man, this thing is getting out of hand 18:58:16 ayoung: the python crypto story is that i can't validate tokens in the client due to a lack of library support for the arbitrary choice in standards 18:58:23 ve been meaning to dust off c/c++ 18:58:25 dolphm, its worse than that 18:58:31 ayoung: but that part is quite clear 18:58:43 * dolphm 2 min 18:58:47 and the choice was not aribitrary. It is PKCS 7 18:58:53 ayoung, maybe we should roll python-smime as under stackforge and get it published 18:59:01 ayoung: i would prefer that to be in python cryptography - they'll get there 18:59:01 That is the only "signing" standard I know of 18:59:10 jamielennox, ++ 18:59:18 ayoung, lets start issuing x.509 certs instead of tokens 18:59:27 gyee, no 18:59:31 ayoung: why not? 18:59:33 they serve different needs 18:59:40 certs are authN tokens AuthZ 18:59:46 yeah, you still need authz 18:59:52 time! 18:59:53 jamielennox, the question is, would it be easier to publish a lib and then get it superseded by pycrypto or aim to get it in pycrypto to begin with 19:00:03 there are X509 stnadards for it, but they are no better supported 19:00:08 SAML would make more sense 19:00:12 jamielennox, my guess is the former 19:00:23 anyway. 19:00:24 more to discuss 19:00:25 * dolphm back to #openstack-keystone! 19:00:26 #endmeeting