In previous blogpost, I wrote How to generate OpenPGP record for DNS (TYPE61). You may get puzzled what to do when you have different GPG keys with the same email. E.g. EPEL GPG keys are:
pub rsa4096 2019-06-05 [SCE] 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 uid Fedora EPEL (8)pub rsa4096 2013-12-16 [SCE] 91E97D7C4A5E96F17F3E888F6A2FAEA2352C64E5 uid Fedora EPEL (7) pub rsa4096 2010-04-23 [SCE] 8C3BE96AF2309184DA5C0DAE3B49DF2A0608B895 uid EPEL (6)
Three different GPG keys with the same email. How should we put it in DNS?
This is actually nothing unusual in DNS. You can have multiple DNS entries normally. E.g.:
;; ANSWER SECTION: seznam.cz. 274 IN A 77.75.74.172 seznam.cz. 274 IN A 77.75.74.176 seznam.cz. 274 IN A 77.75.75.172 seznam.cz. 274 IN A 77.75.75.176
When you run the command suggested in the previous blogpost, you will get:
$ gpg2 --export-options export-dane --export epel@fedoraproject.org $ORIGIN _openpgpkey.fedoraproject.org. ; 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 ; Fedora EPEL (8)1a355c3f6ac5389917041321fdddee2c0ffc4a38f78adec159a015ec TYPE61 \# 1141 ( 99020d045cf7cefb011000c93882169651ae7719e9bc99e4c50cf60ada1623b8 287559e8725add97cde4563a92429fb6760c6e1b99948800d47d81da450cf12b 0f1e7ee427c31cd4f6467bd27802c6d99b4161a65267d24e189aa4ecf4d34d7c f9ea3930569b776bdd886a35cbee759b6b110e937ca9d09aa97928eb973232e2 d7ae88c91c8baf440ff1ee2a8ead17f26bcc773b10b83c4825e698039cff2954 ad252d89dc0c440237be83f6e6e16505a121217fcc923e7bcd3a57bd61cdfc8b fccb779909bf962fa544a536e54b24f5d59a7f8347ff06473083c0915278b83e 07fee4b8f70a969f28936064fb8546e279c17b72b84b0a6951cef251f269113f aff84ff177b4d0cf5997833440d5154913147354ebf876f8edfdf0c358fdf3a1 c8a68d2b79e713483a409d5d387df59571c0465a453ad5addd599953426758b7 9876f6a9e047dff6a4d6649848ec2ab45a6f0380b5295e0365926aaebc4ecfd9 6e4402bd84e40a8a4280db7f0fc6896751bc758a78d18c44b9c623742ea17dd4 a409570fbbf5dd5759c4dc9dbe97b2a5b7ff01f472ac744a864523ddc535a589 0cdc335913bec2e4951eebfd27c5bb7811351905380b8182463fc73b3db9159c ee88fca80bd63c3eecc5ba033f0ec7e45764bc8631599b5bf4cc73c85a25f28b 328528dd3564f273e2521a0e0b4fe423b8fd8a516b071054e5d52d1782130167 3cc671ba8c9b3f22cbd1a50011010001b4284665646f7261204550454c202838 29203c6570656c406665646f726170726f6a6563742e6f72673e890238041301 02002205025cf7cefb021b0f060b090807030206150802090a0b041602030102 1e01021780000a091021ea45ab2f86d6a166a00ffe319cb5b0b37e0607254342 48e9ae4d1f5fb2328699bf53b06c2072aca472cbf98e3abc000663ff6f32f744 d1f72bf44936669ef31354569920b3cf35204c6e811684c6d47e05868ffb67c0 572bf8f26e8c174997ea5e74ce7e14856a5c0377095226f7d8355f4c6f2bdbc4 df2a651535cfb3c4599ac8cc50c34e815193447bd731e99cf4cd209e7f6174f0 36a53d3b1208f213108f8b9f175d74e34009419edbaf7af37ab97204e07e25dd 7348f56b00fa5e332269a5614748300858aeb1f9a9b5dd52089d7b6a07f0b3e0 60472c52b9776fc862ca55c38ed2a258fc8e2144b6702aebed40ab9587de2078 6c4d9eeb3d340d217dddfaf03b258ded698f22873642c35126181f242fa2b064 00c30abcc406c71017aec8c1bc1998f3c68860d07e1b39212e8d52d38c7d716c 01b80e78563bfd555cb5fe2d710bc9c3bc6504dc8e3ff80102aea38c2f30faef f40d7af681131be57042535def85413c60af867cf019735b4cafca1f5f96447d 1849bfb8d5f941dcd2a131253a746234486b48c4348785554d9b1dbfe97893f5 4ff39eb66c1b92b0f2721b6c5cfef4c19451680932c775665f51f20cfb57d7e9 9fb2fbcb92e127c1ce08cb18fd9effec752cfadfc0d4c23883b43983952e4997 608b4cf1ba4896b8290b7808803f8cbbcca2b83a327ae383437160876b7eb39f 0566933de2c4bf10d1ab91d793aaab606347f7f2a2 ) $ORIGIN _openpgpkey.fedoraproject.org. ; 91E97D7C4A5E96F17F3E888F6A2FAEA2352C64E5 ; Fedora EPEL (7) 1a355c3f6ac5389917041321fdddee2c0ffc4a38f78adec159a015ec TYPE61 \# 1141 ( 99020d0452ae6884011000b5529857c0ca8201aacf507fd9b0e16c95a6de4d53 b6a439396273bde9ffab81907bc40ac139279093b07dd22a9227ce7f73bd8e02 7e0e5d8bd3eb781f09e5e926ce4cede99790fb0d4165928eef7d956f80a92366 8d85a199194b44697438eee02308fbefa7485ef70c34597348f8f4d0ddb102a8 cc6e39675769f669b004e60aba569a8fbc55d5c9fad56bfb9a9688035667fa87 6b7845da627eaf2a4c7b07154df1a42cfe4fafdd196286438d9941f4da2e70cc 8d3a00b266340327af9086d7ea2655b731af6a76293dc596e17d110cf729a9f1 4d664eb8df123896c67e63612bf58bb94bff31d25cbeb66988a24684d30c1b75 4bbbe3461366309eb2ba185a2460e73b90db17cac49a15e44f8487eb58c060c9 9fa1df5a14609ee751470bee278e73b5856d2ae94ac3c410a5dd924d6adc4100 c96915a69cca285ff3c04d38c2044c41f5d933dfc0ebbaf93b2241ccb6c22a96 400e40c76c5f57774e8bfa044d970e3206d331712ddb8919b57073feab21cf79 4f4e798f7e84cf41eb8f17694c638e1f146a30ae66f5f9456dac71b439d2ef0e fb5aacd6ec78c5ac3d15793c76be78e31aa7211c44297c3a453b36fc2d316181 889dc913547e5418df958b3b32cd57ea55dde437260d75505c1e95234ba9f41f b8544673ecdcc243631e1e723ef9bda1d4750487ea27ab0a18f19bb4f357a3b1 11311ca95b2473d338b4b70011010001b4284665646f7261204550454c202837 29203c6570656c406665646f726170726f6a6563742e6f72673e890238041301 020022050252ae6884021b0f060b090807030206150802090a0b041602030102 1e01021780000a09106a2faea2352c64e5c7c60ffe2ca6aa6c4e3b4333baa9ca d28b1caaee66dbee5a2aade517ef4fdc30f4651414c678659197e27517838f6a 8b10cb6b2591f1d746fece64c8e8b70b4b97ffa8a7cda632460f8187bd1baea2 942b5e05d41aeb3e2dbd79a29f1be1ae305b577411b66bb3ad3e6c37cae2a6ab d129bfa07498fe84e4a49dbd2452a895ad19c03ac114bfc03cd7244347a79ade f48b26dc2632769cb418b440e70a387cf079b8b75484b1140ef87628afff7cc8 e36b7a342fe48dcfc3746836729f9031094f5107710771379c160a32e6e9918f df4166b79b47534efb8801ae2bc87ddbc3e1f24d7cd0475f08521fd00218236f 1e75d58c7405f621d60292a44487a1f05af69f976d7c9105ed2117f066d7ec56 ec5a8dbd91732b56036a1cdc839df0015683ee6e041db4964991564091a1eb32 ef00cadc13eb643878daa6248d5a59b650348e63598a9ce912ae08aebf17df6a b61153f6024ed7bfb246e2fa52fdbfbe0cd547544677054b2b09548c63c08d87 e5a4243058c0004b18aff6e3f260f1dc12b4ab6d11b4c2321f011defbacd4e48 ec77c591d9a5715f9904ec0cfef355138bcd5f7c477270140c49e3fc6a78e378 bc23c553a3ac4f795643cc3b8a5e68858f79c26ba37ebea593cf6413325d393c dc9fb0c16d4aeedf7090306299dc4bed463b02ec50db2f4d7bab14be65503f1c 69327e2bb8729815f155276ea97978067ed4b97a0f ) $ORIGIN _openpgpkey.fedoraproject.org. ; 8C3BE96AF2309184DA5C0DAE3B49DF2A0608B895 ; EPEL (6) 1a355c3f6ac5389917041321fdddee2c0ffc4a38f78adec159a015ec TYPE61 \# 1132 ( 99020d044bd22942011000cb1a7523db8655296ee588537f240e4282dce53672 aceec060edf55b356af2884dd445b9f5257beb7701ed90ac98f7afe27d9d4b77 7944da0385eb56c6676096c0935e7bbe92a7d67e8ac3fc4505db1b98f08ffe01 33d1caee9864b6a15527c55b6368df4e371fc51bc633c601c1717c871d020d95 11023bdfd71452409ee2028e7ca9c1e75edc4e02f42601b47dcfa43f87f0fe63 f3e1a08269d4e57854d1c26c2b3d33b1d4541a600b9dcf0dc4d442ec1c81e63a a50828f5e4f578b352655ac9e4172d8af97551c0fa3fa0881a491e4f680d86a8 a77513e78145c65d6ed0ce879f7be7d542a2529bb4eadaaf68a95678e89f7ae3 0682448b51c92a6e5b977164edf858ceb0b30d813f63250026c7e25de5baab69 5e8dc1bdf9e4f870051f71dc32ec1d6ae971bfbcd829709f36849f82ba447e8d 84c78226fc8dd676dc0c13f19b9f076add5273800c4b54585ccc31f03648e621 d3c094d27dfe2c518e2a7876066d5bc55c042acda0bf8b843ac87e3be72dd46e bc11f2f4fdec085ec567271a1e53163fa4622ed1e710c19c6d9f10a501e2d9d4 5e535c32afd42082e194fa3a925d86abd7211cb1d4466aca6934867cf906b06e 6fdae1da13d744c4b4f02b852a079706efa930d88ed7d5f76942ff68b080eea0 6201bd5eb3b857c755dfd15f9bba0b15fbd36e0e66bf843f13a016a3f8248e6b 7191cba56f202f8c5b58010011010001b4214550454c20283629203c6570656c 406665646f726170726f6a6563742e6f72673e89023604130102002005024bd2 2942021b0f060b090807030204150208030416020301021e01021780000a0910 3b49df2a0608b8951fc60ffc0b18fbfda8edfd7b26fd365af07ca754128d6d1f 129dae1373f9762b3b8c950d305944f4aebcbdb26a879222140e2a134f7c4813 f6676c6ec81c7e6a07c66195727fa56e1796b12bdc82b5eecf480bb7c4c618a1 8644e0282d7a6e52c6f51cdb4a10ec0f438cf5b90da73b3e612d1c83395d08d8 bc1857c0631888c1294305114c454ec2fb5ce664ac083f59b4c7d8f5b786b7d2 5ad71103b118a2723707cd1ddfd7dfc2ced29b229b4b93e6663a8e3ee4ef5761 74b4c84a2219dc070a288d664f1317ed1e92a1cca561f1f7433bfdcfd72d4593 70a29fc51b08ef4c58c14d476edf57308036510f963b0703edc4cf817bb9ba05 a7438e128bf86328b80446e0a999ed8531b8b9bf67ca2ba9219ddc90f1ebde75 5c0d419c2fa9500ff9e498d54878b60fc75b873ce4a559fba88c0620cd11fa2c bec8760e051c7040d2da3b156f1d4171483b236224500e4f68fc3f9fad55dabc c01d0f0d21fcc91a67e07749f5162ab9abb83a48e5bb13967f4b91692fff4947 02661fb5fca0443a672f047611640e4997f9da90283119bda96903b3aaaa4e70 72af9722eeccee6ec9b3176a2a4b1314c62570655eb6db0127d76bfc86612006 895ac6cfd084ebaefa74c966f05facdd75c4d77419ad79a396873a8f03a58e77 c09234c65e3881ece50b11279df7a3115ed7cb9345b901bf6977bb4a0d1e901c 8eeb8075df0a8a519d9d9555 )
I.e., three entries for 1a355c3f6ac5389917041321fdddee2c0ffc4a38f78adec159a015ec
entry.
RFC 7929 explicitly does not mention how to handle this situation. The only relevant part is Appendix A. on page 18. If you read it you may get a bit different result:
$ gpg2 --export-options export-minimal,no-export-attributes --export 'epel@fedoraproject.org' | wc -c 3414 #^^^ this is the value at the end of the first line (number of octets) $ gpg2 --export-options export-minimal,no-export-attributes --export 'epel@fedoraproject.org' \ |hexdump -e '"\t" /1 "%.2x"' -e '/32 "\n"' # this will give you the value of the key
When you concat two previous results you will get:
; 8C3BE96AF2309184DA5C0DAE3B49DF2A0608B895 ; EPEL (6)> ; 91E97D7C4A5E96F17F3E888F6A2FAEA2352C64E5 ; Fedora EPEL (7) > ; 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 ; Fedora EPEL (8) > 1a355c3f6ac5389917041321fdddee2c0ffc4a38f78adec159a015ec TYPE61 \# 3414 ( 99020d045cf7cefb011000c93882169651ae7719e9bc99e4c50cf60ada1623b8 287559e8725add97cde4563a92429fb6760c6e1b99948800d47d81da450cf12b 0f1e7ee427c31cd4f6467bd27802c6d99b4161a65267d24e189aa4ecf4d34d7c f9ea3930569b776bdd886a35cbee759b6b110e937ca9d09aa97928eb973232e2 d7ae88c91c8baf440ff1ee2a8ead17f26bcc773b10b83c4825e698039cff2954 ad252d89dc0c440237be83f6e6e16505a121217fcc923e7bcd3a57bd61cdfc8b fccb779909bf962fa544a536e54b24f5d59a7f8347ff06473083c0915278b83e 07fee4b8f70a969f28936064fb8546e279c17b72b84b0a6951cef251f269113f aff84ff177b4d0cf5997833440d5154913147354ebf876f8edfdf0c358fdf3a1 c8a68d2b79e713483a409d5d387df59571c0465a453ad5addd599953426758b7 9876f6a9e047dff6a4d6649848ec2ab45a6f0380b5295e0365926aaebc4ecfd9 6e4402bd84e40a8a4280db7f0fc6896751bc758a78d18c44b9c623742ea17dd4 a409570fbbf5dd5759c4dc9dbe97b2a5b7ff01f472ac744a864523ddc535a589 0cdc335913bec2e4951eebfd27c5bb7811351905380b8182463fc73b3db9159c ee88fca80bd63c3eecc5ba033f0ec7e45764bc8631599b5bf4cc73c85a25f28b 328528dd3564f273e2521a0e0b4fe423b8fd8a516b071054e5d52d1782130167 3cc671ba8c9b3f22cbd1a50011010001b4284665646f7261204550454c202838 29203c6570656c406665646f726170726f6a6563742e6f72673e890238041301 02002205025cf7cefb021b0f060b090807030206150802090a0b041602030102 1e01021780000a091021ea45ab2f86d6a166a00ffe319cb5b0b37e0607254342 48e9ae4d1f5fb2328699bf53b06c2072aca472cbf98e3abc000663ff6f32f744 d1f72bf44936669ef31354569920b3cf35204c6e811684c6d47e05868ffb67c0 572bf8f26e8c174997ea5e74ce7e14856a5c0377095226f7d8355f4c6f2bdbc4 df2a651535cfb3c4599ac8cc50c34e815193447bd731e99cf4cd209e7f6174f0 36a53d3b1208f213108f8b9f175d74e34009419edbaf7af37ab97204e07e25dd 7348f56b00fa5e332269a5614748300858aeb1f9a9b5dd52089d7b6a07f0b3e0 60472c52b9776fc862ca55c38ed2a258fc8e2144b6702aebed40ab9587de2078 6c4d9eeb3d340d217dddfaf03b258ded698f22873642c35126181f242fa2b064 00c30abcc406c71017aec8c1bc1998f3c68860d07e1b39212e8d52d38c7d716c 01b80e78563bfd555cb5fe2d710bc9c3bc6504dc8e3ff80102aea38c2f30faef f40d7af681131be57042535def85413c60af867cf019735b4cafca1f5f96447d 1849bfb8d5f941dcd2a131253a746234486b48c4348785554d9b1dbfe97893f5 4ff39eb66c1b92b0f2721b6c5cfef4c19451680932c775665f51f20cfb57d7e9 9fb2fbcb92e127c1ce08cb18fd9effec752cfadfc0d4c23883b43983952e4997 608b4cf1ba4896b8290b7808803f8cbbcca2b83a327ae383437160876b7eb39f 0566933de2c4bf10d1ab91d793aaab606347f7f2a299020d0452ae6884011000 b5529857c0ca8201aacf507fd9b0e16c95a6de4d53b6a439396273bde9ffab81 907bc40ac139279093b07dd22a9227ce7f73bd8e027e0e5d8bd3eb781f09e5e9 26ce4cede99790fb0d4165928eef7d956f80a923668d85a199194b44697438ee e02308fbefa7485ef70c34597348f8f4d0ddb102a8cc6e39675769f669b004e6 0aba569a8fbc55d5c9fad56bfb9a9688035667fa876b7845da627eaf2a4c7b07 154df1a42cfe4fafdd196286438d9941f4da2e70cc8d3a00b266340327af9086 d7ea2655b731af6a76293dc596e17d110cf729a9f14d664eb8df123896c67e63 612bf58bb94bff31d25cbeb66988a24684d30c1b754bbbe3461366309eb2ba18 5a2460e73b90db17cac49a15e44f8487eb58c060c99fa1df5a14609ee751470b ee278e73b5856d2ae94ac3c410a5dd924d6adc4100c96915a69cca285ff3c04d 38c2044c41f5d933dfc0ebbaf93b2241ccb6c22a96400e40c76c5f57774e8bfa 044d970e3206d331712ddb8919b57073feab21cf794f4e798f7e84cf41eb8f17 694c638e1f146a30ae66f5f9456dac71b439d2ef0efb5aacd6ec78c5ac3d1579 3c76be78e31aa7211c44297c3a453b36fc2d316181889dc913547e5418df958b 3b32cd57ea55dde437260d75505c1e95234ba9f41fb8544673ecdcc243631e1e 723ef9bda1d4750487ea27ab0a18f19bb4f357a3b111311ca95b2473d338b4b7 0011010001b4284665646f7261204550454c20283729203c6570656c40666564 6f726170726f6a6563742e6f72673e890238041301020022050252ae6884021b 0f060b090807030206150802090a0b0416020301021e01021780000a09106a2f aea2352c64e5c7c60ffe2ca6aa6c4e3b4333baa9cad28b1caaee66dbee5a2aad e517ef4fdc30f4651414c678659197e27517838f6a8b10cb6b2591f1d746fece 64c8e8b70b4b97ffa8a7cda632460f8187bd1baea2942b5e05d41aeb3e2dbd79 a29f1be1ae305b577411b66bb3ad3e6c37cae2a6abd129bfa07498fe84e4a49d bd2452a895ad19c03ac114bfc03cd7244347a79adef48b26dc2632769cb418b4 40e70a387cf079b8b75484b1140ef87628afff7cc8e36b7a342fe48dcfc37468 36729f9031094f5107710771379c160a32e6e9918fdf4166b79b47534efb8801 ae2bc87ddbc3e1f24d7cd0475f08521fd00218236f1e75d58c7405f621d60292 a44487a1f05af69f976d7c9105ed2117f066d7ec56ec5a8dbd91732b56036a1c dc839df0015683ee6e041db4964991564091a1eb32ef00cadc13eb643878daa6 248d5a59b650348e63598a9ce912ae08aebf17df6ab61153f6024ed7bfb246e2 fa52fdbfbe0cd547544677054b2b09548c63c08d87e5a4243058c0004b18aff6 e3f260f1dc12b4ab6d11b4c2321f011defbacd4e48ec77c591d9a5715f9904ec 0cfef355138bcd5f7c477270140c49e3fc6a78e378bc23c553a3ac4f795643cc 3b8a5e68858f79c26ba37ebea593cf6413325d393cdc9fb0c16d4aeedf709030 6299dc4bed463b02ec50db2f4d7bab14be65503f1c69327e2bb8729815f15527 6ea97978067ed4b97a0f99020d044bd22942011000cb1a7523db8655296ee588 537f240e4282dce53672aceec060edf55b356af2884dd445b9f5257beb7701ed 90ac98f7afe27d9d4b777944da0385eb56c6676096c0935e7bbe92a7d67e8ac3 fc4505db1b98f08ffe0133d1caee9864b6a15527c55b6368df4e371fc51bc633 c601c1717c871d020d9511023bdfd71452409ee2028e7ca9c1e75edc4e02f426 01b47dcfa43f87f0fe63f3e1a08269d4e57854d1c26c2b3d33b1d4541a600b9d cf0dc4d442ec1c81e63aa50828f5e4f578b352655ac9e4172d8af97551c0fa3f a0881a491e4f680d86a8a77513e78145c65d6ed0ce879f7be7d542a2529bb4ea daaf68a95678e89f7ae30682448b51c92a6e5b977164edf858ceb0b30d813f63 250026c7e25de5baab695e8dc1bdf9e4f870051f71dc32ec1d6ae971bfbcd829 709f36849f82ba447e8d84c78226fc8dd676dc0c13f19b9f076add5273800c4b 54585ccc31f03648e621d3c094d27dfe2c518e2a7876066d5bc55c042acda0bf 8b843ac87e3be72dd46ebc11f2f4fdec085ec567271a1e53163fa4622ed1e710 c19c6d9f10a501e2d9d45e535c32afd42082e194fa3a925d86abd7211cb1d446 6aca6934867cf906b06e6fdae1da13d744c4b4f02b852a079706efa930d88ed7 d5f76942ff68b080eea06201bd5eb3b857c755dfd15f9bba0b15fbd36e0e66bf 843f13a016a3f8248e6b7191cba56f202f8c5b58010011010001b4214550454c 20283629203c6570656c406665646f726170726f6a6563742e6f72673e890236 04130102002005024bd22942021b0f060b090807030204150208030416020301 021e01021780000a09103b49df2a0608b8951fc60ffc0b18fbfda8edfd7b26fd 365af07ca754128d6d1f129dae1373f9762b3b8c950d305944f4aebcbdb26a87 9222140e2a134f7c4813f6676c6ec81c7e6a07c66195727fa56e1796b12bdc82 b5eecf480bb7c4c618a18644e0282d7a6e52c6f51cdb4a10ec0f438cf5b90da7 3b3e612d1c83395d08d8bc1857c0631888c1294305114c454ec2fb5ce664ac08 3f59b4c7d8f5b786b7d25ad71103b118a2723707cd1ddfd7dfc2ced29b229b4b 93e6663a8e3ee4ef576174b4c84a2219dc070a288d664f1317ed1e92a1cca561 f1f7433bfdcfd72d459370a29fc51b08ef4c58c14d476edf57308036510f963b 0703edc4cf817bb9ba05a7438e128bf86328b80446e0a999ed8531b8b9bf67ca 2ba9219ddc90f1ebde755c0d419c2fa9500ff9e498d54878b60fc75b873ce4a5 59fba88c0620cd11fa2cbec8760e051c7040d2da3b156f1d4171483b23622450 0e4f68fc3f9fad55dabcc01d0f0d21fcc91a67e07749f5162ab9abb83a48e5bb 13967f4b91692fff494702661fb5fca0443a672f047611640e4997f9da902831 19bda96903b3aaaa4e7072af9722eeccee6ec9b3176a2a4b1314c62570655eb6 db0127d76bfc86612006895ac6cfd084ebaefa74c966f05facdd75c4d77419ad 79a396873a8f03a58e77c09234c65e3881ece50b11279df7a3115ed7cb9345b9 01bf6977bb4a0d1e901c8eeb8075df0a8a519d9d9555 )
This is also a valid result. I contacted the author of RFC 7929 Paul Wouters to clarify this and he suggested that the first option is preferred. But when working on implementation, you should keep in mind that the second is an option as well.