# Gerrit Code Review - Public Keys

The following public keys are are available on the
[Ubuntu Public Key Server](https://keyserver.ubuntu.com/), and are used to sign:

* Release tags on the gerrit and core plugin repositories
* Release artifacts that are published on the Maven Central and Google Maven repositories
* Release announcement emails
* Binary package distributions

| Name             | Email Address                   | Fingerprint                                        | Notes     |
|------------------|---------------------------------|----------------------------------------------------|-----------|
| Dave Borowitz    | dborowitz@google.com            | A4F9 BFB0 EC56 812A 86E6  0AE1 5FD7 C59A 9A12 888C |           |
| David Pursehouse | dpursehouse@collab.net          | 0A76 9EB0 5339 B93B DD89  95ED 0C3A F664 9FFC 2102 |           |
|                  | david.pursehouse@sonymobile.com | 5BEE 1865 DB05 5B31 9DCB  1369 F236 A953 E082 5A6D | Obsoleted |
| Edwin Kempin     | ekempin@google.com              | 8DC3 89F5 9066 40FA C5A9  9037 51B5 FD97 A0D0 EF51 |           |
| Hugo Arès        | hugares@gmail.com               | 6884 7C78 8005 34A7 3386  86C9 C5D7 01B8 24EE 7037 |           |
| Masaya Suzuki    | masayasuzuki@google.com         | 17DE EE31 04AA 1FBD ABE4  D1F7 2489 35B0 B6B8 7F19 |           |
| Patrick Hiesel   | hiesel@google.com               | 7789 759C D085 C90A 1823  63AB 710A 7242 BD5B 6C39 |           |
| Saša Živkov      | sasa.zivkov@sap.com             | 024B 9991 1E26 0764 22A7  5AD4 4D52 61F9 26C1 290E |           |
| GerritForge      | info@gerritforge.com            | F0E2 4DA6 6FFA A737 081E  5A7E 1FFF AA5E 1871 F775 | Deb       |
| GerritForge Yum  | yum@gerritforge.com             | 87BE F09F 08AF 18A9 79ED  67DB AF71 9AD5 21EF A0F0 | Rpm       |
