3
Launchpad models GPG keys in a GPGKey class.
5
>>> from zope.component import getUtility
6
>>> from lp.registry.interfaces.gpg import (
10
>>> from lp.registry.interfaces.person import IPersonSet
11
>>> personset = getUtility(IPersonSet)
12
>>> foobar = personset.getByName('name16')
13
>>> gpgkeyset = getUtility(IGPGKeySet)
14
>>> keys = gpgkeyset.getGPGKeys(ownerid=foobar.id)
15
>>> [key.keyid for key in keys]
18
Adding new keys is pretty easy:
20
>>> name12 = personset.getByName('name12')
21
>>> gpgkeyset.new(name12.id, u'DEADBEEF',
22
... 'DEADBEEF12345678DEADBEEF12345678DEADBEEF', 1024,
23
... GPGKeyAlgorithm.LITTLE_G)
25
>>> gpgkeyset.new(name12.id, u'DEADBEED',
26
... 'DEADBEED12345678DEADBEED12345678DEADBEED', 2048, GPGKeyAlgorithm.G)
29
As is pulling it based on the key ID:
31
>>> key = gpgkeyset.getByFingerprint(
32
... 'DEADBEEF12345678DEADBEEF12345678DEADBEEF')
36
There's also a convenience method for fetching multiple GPG keys at
39
>>> keys = gpgkeyset.getGPGKeysForPeople([foobar, name12])
40
>>> [(key.owner.name, key.keyid) for key in keys]
41
[(u'name12', u'DEADBEED'),
42
(u'name12', u'DEADBEEF'),
43
(u'name16', u'12345678')]