Bunch of refactoring

- Get rid of KeyProfile and use DatabaseEntry directly
- Don't store Google auth style urls in the db, but use separate fields
- Update testdata to reflect db format changes
- Lay the ground work for HOTP support
- Refactor KeyInfo and split it into OtpInfo, TotpInto and HotpInfo
- Surely some other stuff I forgot about
This commit is contained in:
Alexander Bakker 2018-06-06 16:15:31 +02:00
parent 9859011a6d
commit 4a4ab1a82c
47 changed files with 1230 additions and 861 deletions

File diff suppressed because one or more lines are too long

View file

@ -8,54 +8,124 @@
"version": 1,
"entries": [
{
"type": "totp",
"uuid": "8e986927-a7a3-4d35-88fb-509ae7960155",
"name": "Bob",
"url": "otpauth:\/\/totp\/Google%3ABob?digits=6&period=30&algorithm=SHA1&secret=KD3WHMYQ7K7DGV5QFJNN2ZUATBC44C7F&issuer=Google"
"issuer": "Google",
"info": {
"secret": "KD3WHMYQ7K7DGV5QFJNN2ZUATBC44C7F",
"algo": "SHA1",
"digits": 6,
"period": 30
}
},
{
"type": "totp",
"uuid": "97155de0-fb6a-4dfa-ac59-2abe54f5d059",
"name": "Henk",
"url": "otpauth:\/\/totp\/Scaleway%3AHenk?digits=6&period=10&algorithm=SHA256&secret=MBQX47S3XOSOF7YT2CO3LZNACULZNY4P&issuer=Scaleway"
},
{
"uuid": "7dca76af-fa6a-4585-8d47-5a8b78130c9c",
"name": "Oh wait, they don't have TOTP",
"url": "otpauth:\/\/totp\/Namecheap%3AOh%20wait%2C%20they%20don't%20have%20TOTP?digits=8&period=30&algorithm=SHA512&secret=HIMV4HX3REXMUG236OOLN4GS7URI247Y&issuer=Namecheap"
},
{
"uuid": "435a3542-c566-4cc0-a5f4-39cd6ffe316d",
"name": "Delete Me",
"url": "otpauth:\/\/totp\/Facebook%3ADelete%20Me?digits=6&period=60&algorithm=SHA1&secret=GSQ7E5FO3UFFVANS3NSMFE7RTMRMYNCV&issuer=Facebook"
"issuer": "Scaleway",
"info": {
"secret": "MBQX47S3XOSOF7YT2CO3LZNACULZNY4P",
"algo": "SHA256",
"digits": 6,
"period": 10
}
},
{
"type": "totp",
"uuid": "a6276843-3c95-43b7-a3ef-e824c5534801",
"name": "nodejsc0d3r",
"url": "otpauth:\/\/totp\/Github%3Anodejsc0d3r?digits=6&period=50&algorithm=SHA1&secret=642GK5EROWKUAEBFRH6FWSMM4FRKS5IA&issuer=Github"
},
{
"uuid": "159b3e5f-fff4-4ff5-997a-b8d1263ee446",
"name": "MoneroMan",
"url": "otpauth:\/\/totp\/Poloniex%3AMoneroMan?digits=8&period=30&algorithm=SHA256&secret=NUSLOF6CFEWNPAARBVJ5WFA5YRRQU4FG&issuer=Poloniex"
"issuer": "Github",
"info": {
"secret": "642GK5EROWKUAEBFRH6FWSMM4FRKS5IA",
"algo": "SHA1",
"digits": 6,
"period": 50
}
},
{
"type": "hotp",
"uuid": "1748b48c-7496-4722-9048-17248e843773",
"name": "Lil' Droplet",
"url": "otpauth:\/\/totp\/DigitalOcean%3ALil'%20Droplet?digits=6&period=45&algorithm=SHA512&secret=6CAIGVYB5MQ6TSZLJ56HJBWU5S3H7FUC&issuer=DigitalOcean"
},
{
"uuid": "8cd843e5-4122-48e1-8089-a3d0c769741f",
"name": "givemeabucket",
"url": "otpauth:\/\/totp\/Bitbucket%3Agivemeabucket?digits=6&period=20&algorithm=SHA1&secret=5KY3D2N53MRMIOMNKLLTNF3TDQJRDMEY&issuer=Bitbucket"
},
{
"uuid": "77c6267a-b38a-40b9-a3a7-5a5ce11230bb",
"name": "Pepe",
"url": "otpauth:\/\/totp\/4chan%3APepe?digits=8&period=30&algorithm=SHA1&secret=EIQMT7NHFYJUMBKQ35P34JGLG3MO7L2W&issuer=4chan"
"issuer": "DigitalOcean",
"info": {
"secret": "6CAIGVYB5MQ6TSZLJ56HJBWU5S3H7FUC",
"algo": "SHA512",
"digits": 6,
"counter": 30
}
},
{
"type": "totp",
"uuid": "9eef3fa3-bdde-4954-bf37-58bf1d5d6e5f",
"name": "alex",
"url": "otpauth:\/\/totp\/TTRSS%3Aalex?digits=6&period=30&algorithm=SHA1&secret=BEBXDJJVXKX3ZMAZLJUU5I5PONI4IYAL&issuer=TTRSS"
"issuer": "TTRSS",
"info": {
"secret": "BEBXDJJVXKX3ZMAZLJUU5I5PONI4IYAL",
"algo": "SHA1",
"digits": 6,
"period": 30
}
},
{
"type": "totp",
"uuid": "159b3e5f-fff4-4ff5-997a-b8d1263ee446",
"name": "MoneroMan",
"issuer": "Poloniex",
"info": {
"secret": "NUSLOF6CFEWNPAARBVJ5WFA5YRRQU4FG",
"algo": "SHA256",
"digits": 8,
"period": 30
}
},
{
"type": "totp",
"uuid": "8cd843e5-4122-48e1-8089-a3d0c769741f",
"name": "givemeabucket",
"issuer": "Bitbucket",
"info": {
"secret": "5KY3D2N53MRMIOMNKLLTNF3TDQJRDMEY",
"algo": "SHA1",
"digits": 6,
"period": 20
}
},
{
"type": "hotp",
"uuid": "77c6267a-b38a-40b9-a3a7-5a5ce11230bb",
"name": "Pepe",
"issuer": "4chan",
"info": {
"secret": "EIQMT7NHFYJUMBKQ35P34JGLG3MO7L2W",
"algo": "SHA1",
"digits": 8,
"counter": 20
}
},
{
"type": "totp",
"uuid": "435a3542-c566-4cc0-a5f4-39cd6ffe316d",
"name": "Delete Me",
"issuer": "Facebook",
"info": {
"secret": "GSQ7E5FO3UFFVANS3NSMFE7RTMRMYNCV",
"algo": "SHA1",
"digits": 6,
"period": 60
}
},
{
"type": "totp",
"uuid": "7dca76af-fa6a-4585-8d47-5a8b78130c9c",
"name": "Oh wait, they don't have TOTP",
"issuer": "Namecheap",
"info": {
"secret": "HIMV4HX3REXMUG236OOLN4GS7URI247Y",
"algo": "SHA512",
"digits": 8,
"period": 30
}
}
]
}