mirror of
https://gitlab.com/keys.openpgp.org/hagrid.git
synced 2025-10-05 16:12:44 +02:00
Replace "extern crate" and #[macro_use] declarations with "use" imports.
Both "extern crate" and #[macro_use] are artifacts of earlier editions of Rust language. Nowadays we can entirely rely on "use" instead. Changes: - Replace "extern crate" with "use" imports. - Replace #[macro_use] extern crate ...; declarations with "use" imports of used macros. For example, #[macro_use] extern crate anyhow; was replaced with use anyhow::anyhow; in every file where anyhow! macro were used. - Favor direct usage of import path instead of aliased one. For example, in many places "sequoia_opengpg" were aliased as "openpgp", during imports replacements I tried to avoid usage of "openpgp" or introduced additional aliases (like "use sequoia_openpgp as openpgp") and used "sequoia_opengpg". I think this way it is easier to understand where name came from instead of search and jumping to lib.rs or main.rs files trying to find where name were aliased. Another example of such favoring is usage of "hagrid_database" over the "database" in imports. NOTE: the usage is still inconsistent and requires further clean up.
This commit is contained in:
2
build.rs
2
build.rs
@@ -1,5 +1,3 @@
|
||||
extern crate vergen;
|
||||
|
||||
use vergen::{ConstantsFlags, generate_cargo_keys};
|
||||
|
||||
fn main() {
|
||||
|
@@ -9,6 +9,8 @@ use std::path::{Path, PathBuf};
|
||||
|
||||
use pathdiff::diff_paths;
|
||||
use std::time::SystemTime;
|
||||
use anyhow::{anyhow, format_err};
|
||||
use log::info;
|
||||
use url::form_urlencoded;
|
||||
|
||||
use crate::Result;
|
||||
@@ -21,7 +23,7 @@ use crate::wkd;
|
||||
use tempfile::NamedTempFile;
|
||||
|
||||
use crate::openpgp_utils::POLICY;
|
||||
use openpgp::Cert;
|
||||
use sequoia_openpgp::Cert;
|
||||
|
||||
use crate::DatabaseTransaction;
|
||||
|
||||
@@ -837,7 +839,7 @@ fn path_merge(path: &Path) -> String {
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::test;
|
||||
use openpgp::cert::CertBuilder;
|
||||
use sequoia_openpgp::cert::CertBuilder;
|
||||
use tempfile::TempDir;
|
||||
|
||||
#[test]
|
||||
|
@@ -3,33 +3,12 @@
|
||||
use std::convert::TryFrom;
|
||||
use std::str::FromStr;
|
||||
|
||||
use openpgp::serialize::SerializeInto;
|
||||
use sequoia_openpgp::{serialize::SerializeInto, Cert, packet::UserID, parse::Parse, types::KeyFlags};
|
||||
|
||||
use chrono::prelude::Utc;
|
||||
|
||||
#[macro_use]
|
||||
extern crate anyhow;
|
||||
use anyhow::Result;
|
||||
extern crate fs2;
|
||||
extern crate idna;
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
extern crate chrono;
|
||||
extern crate hex;
|
||||
extern crate pathdiff;
|
||||
extern crate r2d2_sqlite;
|
||||
extern crate rand;
|
||||
extern crate self_cell;
|
||||
extern crate serde;
|
||||
extern crate serde_json;
|
||||
extern crate tempfile;
|
||||
extern crate time;
|
||||
extern crate url;
|
||||
extern crate walkdir;
|
||||
extern crate zbase32;
|
||||
|
||||
extern crate sequoia_openpgp as openpgp;
|
||||
use openpgp::{Cert, packet::UserID, parse::Parse, types::KeyFlags};
|
||||
use anyhow::{anyhow, Result};
|
||||
use log::{info, error};
|
||||
|
||||
pub mod types;
|
||||
use types::{Email, Fingerprint, KeyID};
|
||||
|
@@ -1,7 +1,7 @@
|
||||
use openpgp::Result;
|
||||
use std::convert::TryFrom;
|
||||
|
||||
use openpgp::{
|
||||
use sequoia_openpgp::{
|
||||
Result,
|
||||
Cert, cert::prelude::*, policy::StandardPolicy, serialize::SerializeInto as _,
|
||||
types::RevocationStatus,
|
||||
};
|
||||
|
@@ -6,13 +6,11 @@ use std::path::PathBuf;
|
||||
use std::str::FromStr;
|
||||
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
||||
use anyhow::format_err;
|
||||
use crate::Result;
|
||||
use crate::types::{Email, Fingerprint, KeyID};
|
||||
use crate::{Database, Query};
|
||||
use openpgp::policy::StandardPolicy;
|
||||
|
||||
use openpgp::Cert;
|
||||
use sequoia_openpgp::{Cert, policy::StandardPolicy};
|
||||
|
||||
use r2d2_sqlite::SqliteConnectionManager;
|
||||
use r2d2_sqlite::rusqlite::OptionalExtension;
|
||||
@@ -483,7 +481,7 @@ impl<'a> Database<'a> for Sqlite {
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::test;
|
||||
use openpgp::cert::CertBuilder;
|
||||
use sequoia_openpgp::cert::CertBuilder;
|
||||
use tempfile::TempDir;
|
||||
|
||||
const DATA_1: &str = "data, content doesn't matter";
|
||||
|
@@ -3,7 +3,7 @@ use std::io::{Read, Write};
|
||||
use std::path::PathBuf;
|
||||
|
||||
use std::str;
|
||||
|
||||
use log::info;
|
||||
use crate::Result;
|
||||
|
||||
pub struct StatefulTokens {
|
||||
|
@@ -20,13 +20,12 @@ use std::str::FromStr;
|
||||
|
||||
use crate::types::{Email, Fingerprint, KeyID};
|
||||
use crate::{Database, Query};
|
||||
use openpgp::cert::{CertBuilder, UserIDRevocationBuilder};
|
||||
use openpgp::types::{KeyFlags, ReasonForRevocation, SignatureType};
|
||||
use openpgp::{
|
||||
use sequoia_openpgp::{
|
||||
cert::{CertBuilder, UserIDRevocationBuilder},
|
||||
Cert, Packet,
|
||||
packet::{UserID, signature::*},
|
||||
parse::Parse,
|
||||
types::RevocationStatus,
|
||||
types::{KeyFlags, ReasonForRevocation, SignatureType, RevocationStatus},
|
||||
};
|
||||
|
||||
use crate::openpgp_utils::POLICY;
|
||||
@@ -1353,7 +1352,7 @@ pub fn test_no_selfsig<'a>(db: &'a mut impl Database<'a>) {
|
||||
|
||||
/// Makes sure that attested key signatures are correctly handled.
|
||||
pub fn attested_key_signatures<'a>(db: &'a mut impl Database<'a>) -> Result<()> {
|
||||
use openpgp::types::*;
|
||||
use sequoia_openpgp::types::*;
|
||||
use std::time::{Duration, SystemTime};
|
||||
let t0 = SystemTime::now() - Duration::new(5 * 60, 0);
|
||||
let t1 = SystemTime::now() - Duration::new(4 * 60, 0);
|
||||
|
@@ -4,9 +4,9 @@ use std::result;
|
||||
use std::str::FromStr;
|
||||
|
||||
use crate::Result;
|
||||
use anyhow::Error;
|
||||
use anyhow::{anyhow, Error};
|
||||
use hex::ToHex;
|
||||
use openpgp::packet::UserID;
|
||||
use sequoia_openpgp::packet::UserID;
|
||||
use r2d2_sqlite::rusqlite::types::FromSql;
|
||||
use r2d2_sqlite::rusqlite::types::FromSqlError;
|
||||
use r2d2_sqlite::rusqlite::types::FromSqlResult;
|
||||
|
@@ -1,5 +1,6 @@
|
||||
use anyhow::anyhow;
|
||||
use super::Result;
|
||||
use crate::openpgp::types::HashAlgorithm;
|
||||
use sequoia_openpgp::types::HashAlgorithm;
|
||||
use zbase32;
|
||||
|
||||
// cannibalized from
|
||||
|
@@ -8,13 +8,11 @@ use std::thread;
|
||||
|
||||
use anyhow::Result;
|
||||
|
||||
extern crate tempfile;
|
||||
|
||||
extern crate sequoia_openpgp as openpgp;
|
||||
use sequoia_openpgp as openpgp;
|
||||
use openpgp::Packet;
|
||||
use openpgp::parse::{PacketParser, PacketParserResult, Parse};
|
||||
|
||||
extern crate hagrid_database as database;
|
||||
use hagrid_database as database;
|
||||
use database::{Database, EmailAddressStatus, ImportResult, KeyDatabase};
|
||||
|
||||
use indicatif::{MultiProgress, ProgressBar, ProgressStyle};
|
||||
|
@@ -1,14 +1,3 @@
|
||||
extern crate anyhow;
|
||||
extern crate clap;
|
||||
extern crate hagrid_database as database;
|
||||
extern crate sequoia_openpgp as openpgp;
|
||||
extern crate tempfile;
|
||||
#[macro_use]
|
||||
extern crate serde_derive;
|
||||
extern crate indicatif;
|
||||
extern crate toml;
|
||||
extern crate walkdir;
|
||||
|
||||
use std::fs;
|
||||
use std::path::PathBuf;
|
||||
use std::str::FromStr;
|
||||
@@ -16,6 +5,7 @@ use std::str::FromStr;
|
||||
use anyhow::Result;
|
||||
|
||||
use clap::{App, Arg, SubCommand};
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
mod import;
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
use lazy_static::lazy_static;
|
||||
use std::collections::HashSet;
|
||||
|
||||
use crate::database::types::Email;
|
||||
use hagrid_database::types::Email;
|
||||
|
||||
// from https://github.com/mailcheck/mailcheck/wiki/List-of-Popular-Domains
|
||||
lazy_static! {
|
||||
|
@@ -3,7 +3,7 @@ use rocket_prometheus::prometheus;
|
||||
|
||||
use crate::anonymize_utils;
|
||||
|
||||
use crate::database::types::Email;
|
||||
use hagrid_database::types::Email;
|
||||
|
||||
lazy_static! {
|
||||
static ref KEY_UPLOAD: LabelCounter =
|
||||
|
@@ -3,14 +3,11 @@
|
||||
use std::convert::TryInto;
|
||||
use std::path::PathBuf;
|
||||
|
||||
extern crate anyhow;
|
||||
use anyhow::Result;
|
||||
|
||||
extern crate structopt;
|
||||
use structopt::StructOpt;
|
||||
|
||||
extern crate hagrid_database as database;
|
||||
use crate::database::{Database, KeyDatabase, Query};
|
||||
use hagrid_database::{Database, KeyDatabase, Query, types::Fingerprint};
|
||||
|
||||
#[derive(Debug, StructOpt)]
|
||||
#[structopt(
|
||||
@@ -70,7 +67,7 @@ fn delete(db: &KeyDatabase, query: &Query, all_bindings: bool, mut all: bool) ->
|
||||
.lookup(query)?
|
||||
.ok_or_else(|| anyhow::format_err!("No TPK matching {:?}", query))?;
|
||||
|
||||
let fp: database::types::Fingerprint = tpk.fingerprint().try_into()?;
|
||||
let fp: Fingerprint = tpk.fingerprint().try_into()?;
|
||||
let mut results = Vec::new();
|
||||
|
||||
// First, delete the bindings.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
use crate::database::Query;
|
||||
use hagrid_database::Query;
|
||||
use gettext_macros::i18n;
|
||||
use rocket_i18n::I18n;
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use anyhow::anyhow;
|
||||
use crate::counters;
|
||||
use lettre::message::{Mailbox, MultiPart, SinglePart, header};
|
||||
use lettre::{FileTransport, SendmailTransport, SmtpTransport, Transport as LettreTransport};
|
||||
@@ -13,9 +13,11 @@ use rocket_i18n::I18n;
|
||||
use crate::template_helpers;
|
||||
|
||||
use crate::Result;
|
||||
use crate::database::types::Email;
|
||||
use hagrid_database::types::Email;
|
||||
|
||||
mod context {
|
||||
use serde_derive::Serialize;
|
||||
|
||||
#[derive(Serialize, Clone)]
|
||||
pub struct Verification {
|
||||
pub lang: String,
|
||||
|
15
src/main.rs
15
src/main.rs
@@ -1,20 +1,7 @@
|
||||
#![recursion_limit = "1024"]
|
||||
|
||||
#[macro_use]
|
||||
extern crate anyhow;
|
||||
use anyhow::Result;
|
||||
|
||||
#[macro_use]
|
||||
extern crate serde_derive;
|
||||
|
||||
#[macro_use]
|
||||
extern crate rocket;
|
||||
|
||||
#[cfg(test)]
|
||||
extern crate regex;
|
||||
|
||||
extern crate hagrid_database as database;
|
||||
|
||||
use rocket::launch;
|
||||
use gettext_macros::init_i18n;
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
|
@@ -1,7 +1,9 @@
|
||||
use anyhow::anyhow;
|
||||
use crate::sealed_state::SealedState;
|
||||
|
||||
use crate::Result;
|
||||
use serde::{Serialize, de::DeserializeOwned};
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
pub trait StatelessSerializable: Serialize + DeserializeOwned {}
|
||||
|
||||
|
@@ -1,12 +1,13 @@
|
||||
use std::io;
|
||||
|
||||
use anyhow::anyhow;
|
||||
use rocket_i18n::I18n;
|
||||
use rocket::get;
|
||||
|
||||
use crate::dump::{self, Kind};
|
||||
use crate::i18n_helpers::describe_query_error;
|
||||
use crate::web::MyResponse;
|
||||
|
||||
use crate::database::{Database, KeyDatabase, Query};
|
||||
use hagrid_database::{Database, KeyDatabase, Query};
|
||||
|
||||
#[get("/debug?<q>")]
|
||||
pub fn debug_info(db: &rocket::State<KeyDatabase>, i18n: I18n, q: String) -> MyResponse {
|
||||
|
@@ -7,10 +7,10 @@ use std::time::SystemTime;
|
||||
use rocket::Data;
|
||||
use rocket::http::ContentType;
|
||||
use rocket_i18n::I18n;
|
||||
use rocket::{get, post};
|
||||
use url::percent_encoding::{DEFAULT_ENCODE_SET, utf8_percent_encode};
|
||||
|
||||
use crate::database::types::{Email, Fingerprint, KeyID};
|
||||
use crate::database::{Database, KeyDatabase, Query};
|
||||
use hagrid_database::{Database, KeyDatabase, Query, types::{Email, Fingerprint, KeyID}};
|
||||
|
||||
use crate::i18n_helpers::describe_query_error;
|
||||
use crate::rate_limiter::RateLimiter;
|
||||
|
@@ -1,13 +1,14 @@
|
||||
use rocket::fairing::{Fairing, Info, Kind};
|
||||
use rocket::http::Method;
|
||||
use rocket::{Data, Request};
|
||||
use rocket::{async_trait, uri, get};
|
||||
use rocket_dyn_templates::Template;
|
||||
use rocket_i18n::I18n;
|
||||
use serde_json::json;
|
||||
|
||||
use std::fs;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use serde_derive::Serialize;
|
||||
use crate::web::MyResponse;
|
||||
|
||||
use super::util::get_commit_sha;
|
||||
@@ -17,6 +18,8 @@ pub struct MaintenanceMode {
|
||||
}
|
||||
|
||||
mod templates {
|
||||
use serde_derive::Serialize;
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct MaintenanceMode {
|
||||
pub message: String,
|
||||
|
@@ -1,18 +1,23 @@
|
||||
use anyhow::anyhow;
|
||||
use rocket::form::Form;
|
||||
use rocket::{get, post, uri};
|
||||
use rocket_i18n::I18n;
|
||||
|
||||
use crate::Result;
|
||||
|
||||
use gettext_macros::i18n;
|
||||
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use crate::counters;
|
||||
use crate::database::{Database, KeyDatabase, types::Email, types::Fingerprint};
|
||||
use hagrid_database::{Database, KeyDatabase, types::Email, types::Fingerprint, Query};
|
||||
use crate::mail;
|
||||
use crate::rate_limiter::RateLimiter;
|
||||
use crate::tokens::{self, StatelessSerializable};
|
||||
use crate::web::vks_web;
|
||||
use crate::web::{MyResponse, RequestOrigin};
|
||||
|
||||
use std::convert::TryFrom;
|
||||
use std::convert::TryInto;
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
struct StatelessVerifyToken {
|
||||
fpr: Fingerprint,
|
||||
@@ -20,6 +25,8 @@ struct StatelessVerifyToken {
|
||||
impl StatelessSerializable for StatelessVerifyToken {}
|
||||
|
||||
mod templates {
|
||||
use serde_derive::Serialize;
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct ManageKey {
|
||||
pub key_fpr: String,
|
||||
@@ -42,6 +49,8 @@ mod templates {
|
||||
}
|
||||
|
||||
pub mod forms {
|
||||
use rocket::FromForm;
|
||||
|
||||
#[derive(FromForm)]
|
||||
pub struct ManageRequest {
|
||||
pub search_term: String,
|
||||
@@ -67,10 +76,8 @@ pub fn vks_manage_key(
|
||||
token: String,
|
||||
token_service: &rocket::State<tokens::Service>,
|
||||
) -> MyResponse {
|
||||
use crate::database::types::Fingerprint;
|
||||
use std::convert::TryFrom;
|
||||
if let Ok(StatelessVerifyToken { fpr }) = token_service.check(&token) {
|
||||
match db.lookup(&database::Query::ByFingerprint(fpr)) {
|
||||
match db.lookup(&Query::ByFingerprint(fpr)) {
|
||||
Ok(Some(tpk)) => {
|
||||
let fp = Fingerprint::try_from(tpk.fingerprint()).unwrap();
|
||||
let mut emails: Vec<Email> = tpk
|
||||
@@ -124,8 +131,6 @@ pub fn vks_manage_post(
|
||||
request: Form<forms::ManageRequest>,
|
||||
token_service: &rocket::State<tokens::Service>,
|
||||
) -> MyResponse {
|
||||
use std::convert::TryInto;
|
||||
|
||||
let email = match request.search_term.parse::<Email>() {
|
||||
Ok(email) => email,
|
||||
Err(_) => {
|
||||
@@ -138,7 +143,7 @@ pub fn vks_manage_post(
|
||||
}
|
||||
};
|
||||
|
||||
let tpk = match db.lookup(&database::Query::ByEmail(email.clone())) {
|
||||
let tpk = match db.lookup(&Query::ByEmail(email.clone())) {
|
||||
Ok(Some(tpk)) => tpk,
|
||||
Ok(None) => {
|
||||
return MyResponse::not_found(
|
||||
|
@@ -3,7 +3,7 @@ use rocket::figment::Figment;
|
||||
use rocket::fs::NamedFile;
|
||||
use rocket::http::{Header, Status};
|
||||
use rocket::outcome::Outcome;
|
||||
use rocket::request;
|
||||
use rocket::{async_trait, request, get, routes};
|
||||
use rocket::response::status::Custom;
|
||||
use rocket::response::{Responder, Response};
|
||||
use rocket_dyn_templates::{Engines, Template};
|
||||
@@ -27,8 +27,7 @@ use crate::template_helpers::TemplateOverrides;
|
||||
use crate::tokens;
|
||||
|
||||
use crate::Result;
|
||||
use crate::database::types::Fingerprint;
|
||||
use crate::database::{Database, KeyDatabase, Query};
|
||||
use hagrid_database::{Database, KeyDatabase, Query, types::Fingerprint, StatefulTokens};
|
||||
|
||||
use std::convert::TryInto;
|
||||
|
||||
@@ -209,6 +208,7 @@ impl MyResponse {
|
||||
}
|
||||
|
||||
mod templates {
|
||||
use serde_derive::Serialize;
|
||||
use super::{I18n, RequestOrigin, util::get_commit_sha};
|
||||
|
||||
#[derive(Serialize)]
|
||||
@@ -539,9 +539,9 @@ fn configure_hagrid_state(config: &Figment) -> Result<HagridState> {
|
||||
})
|
||||
}
|
||||
|
||||
fn configure_stateful_token_service(config: &Figment) -> Result<database::StatefulTokens> {
|
||||
fn configure_stateful_token_service(config: &Figment) -> Result<StatefulTokens> {
|
||||
let token_dir: PathBuf = config.extract_inner("token_dir")?;
|
||||
database::StatefulTokens::new(token_dir)
|
||||
StatefulTokens::new(token_dir)
|
||||
}
|
||||
|
||||
fn configure_stateless_token_service(config: &Figment) -> Result<tokens::Service> {
|
||||
@@ -1115,7 +1115,7 @@ pub mod tests {
|
||||
&format!("/pks/lookup?op=get&options=mr&search={}", addr),
|
||||
);
|
||||
|
||||
let (wkd_hash, domain) = crate::database::wkd::encode_wkd(addr).unwrap();
|
||||
let (wkd_hash, domain) = hagrid_database::wkd::encode_wkd(addr).unwrap();
|
||||
check_null_response(
|
||||
client,
|
||||
&format!("/.well-known/openpgpkey/{}/hu/{}", domain, wkd_hash),
|
||||
@@ -1149,7 +1149,7 @@ pub mod tests {
|
||||
check_hr_response(client, &format!("/search?q={}", addr), tpk, nr_uids);
|
||||
check_hr_response_onion(client, &format!("/search?q={}", addr), tpk, nr_uids);
|
||||
|
||||
let (wkd_hash, domain) = crate::database::wkd::encode_wkd(addr).unwrap();
|
||||
let (wkd_hash, domain) = hagrid_database::wkd::encode_wkd(addr).unwrap();
|
||||
check_wkd_response(
|
||||
client,
|
||||
&format!("/.well-known/openpgpkey/{}/hu/{}", domain, wkd_hash),
|
||||
|
@@ -1,9 +1,8 @@
|
||||
use crate::Result;
|
||||
|
||||
use crate::counters;
|
||||
use crate::database::types::{Email, Fingerprint};
|
||||
use crate::database::{
|
||||
Database, EmailAddressStatus, ImportResult, KeyDatabase, StatefulTokens, TpkStatus,
|
||||
use hagrid_database::{
|
||||
Database, EmailAddressStatus, ImportResult, KeyDatabase, StatefulTokens, TpkStatus, types::{Email, Fingerprint}
|
||||
};
|
||||
use crate::mail;
|
||||
use crate::rate_limiter::RateLimiter;
|
||||
@@ -21,10 +20,13 @@ use sequoia_openpgp::parse::{Dearmor, PacketParserBuilder, Parse};
|
||||
use std::collections::HashMap;
|
||||
use std::convert::TryFrom;
|
||||
use std::io::Read;
|
||||
|
||||
use anyhow::anyhow;
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use self::response::*;
|
||||
|
||||
pub mod request {
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct UploadRequest {
|
||||
pub keytext: String,
|
||||
@@ -38,7 +40,10 @@ pub mod request {
|
||||
}
|
||||
|
||||
pub mod response {
|
||||
use crate::database::types::Email;
|
||||
use hagrid_database::types::Email;
|
||||
|
||||
use std::collections::HashMap;
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
|
||||
pub enum EmailStatus {
|
||||
@@ -52,8 +57,6 @@ pub mod response {
|
||||
Revoked,
|
||||
}
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
pub enum UploadResponse {
|
||||
Ok {
|
||||
token: String,
|
||||
|
@@ -1,3 +1,4 @@
|
||||
use rocket::{get, post};
|
||||
use rocket::http::{ContentType, Status};
|
||||
use rocket::request::Request;
|
||||
use rocket::response::{self, Responder, Response};
|
||||
@@ -6,8 +7,7 @@ use rocket_i18n::{I18n, Translations};
|
||||
use serde_json::json;
|
||||
use std::io::Cursor;
|
||||
|
||||
use crate::database::types::{Email, Fingerprint, KeyID};
|
||||
use crate::database::{KeyDatabase, Query, StatefulTokens};
|
||||
use hagrid_database::{types::{Email, Fingerprint, KeyID}, KeyDatabase, Query, StatefulTokens};
|
||||
use crate::mail;
|
||||
use crate::rate_limiter::RateLimiter;
|
||||
use crate::tokens;
|
||||
@@ -22,6 +22,7 @@ use rocket::serde::json::Error as JsonError;
|
||||
pub mod json {
|
||||
use crate::web::vks::response::EmailStatus;
|
||||
use std::collections::HashMap;
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct VerifyRequest {
|
||||
|
@@ -11,9 +11,11 @@ use rocket::form::Form;
|
||||
use rocket::form::ValueField;
|
||||
use rocket::http::ContentType;
|
||||
use rocket_i18n::I18n;
|
||||
use rocket::uri;
|
||||
use rocket::{get, post, put};
|
||||
use url::percent_encoding::percent_decode;
|
||||
|
||||
use crate::database::{Database, KeyDatabase, Query, StatefulTokens};
|
||||
use hagrid_database::{Database, KeyDatabase, Query, StatefulTokens};
|
||||
use crate::i18n_helpers::describe_query_error;
|
||||
use crate::mail;
|
||||
use crate::rate_limiter::RateLimiter;
|
||||
@@ -22,13 +24,16 @@ use crate::web::{MyResponse, RequestOrigin};
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::io::Cursor;
|
||||
|
||||
use anyhow::anyhow;
|
||||
use crate::web::vks;
|
||||
use crate::web::vks::response::*;
|
||||
|
||||
const UPLOAD_LIMIT: ByteUnit = ByteUnit::Mebibyte(1);
|
||||
|
||||
mod forms {
|
||||
use rocket::FromForm;
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
#[derive(FromForm, Deserialize)]
|
||||
pub struct VerifyRequest {
|
||||
pub token: String,
|
||||
@@ -42,6 +47,8 @@ mod forms {
|
||||
}
|
||||
|
||||
mod template {
|
||||
use serde_derive::Serialize;
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct VerifyForm {
|
||||
pub token: String,
|
||||
|
@@ -1,5 +1,6 @@
|
||||
use crate::database::{Database, KeyDatabase};
|
||||
use hagrid_database::{Database, KeyDatabase};
|
||||
use crate::web::MyResponse;
|
||||
use rocket::get;
|
||||
|
||||
// WKD queries
|
||||
#[get("/.well-known/openpgpkey/<domain>/hu/<wkd_hash>")]
|
||||
|
@@ -3,7 +3,7 @@ use std::{fs::File, io::Write, path::Path};
|
||||
use anyhow::Result;
|
||||
|
||||
use indicatif::{ProgressBar, ProgressStyle};
|
||||
use openpgp::{cert::CertBuilder, serialize::Serialize};
|
||||
use sequoia_openpgp::{cert::CertBuilder, serialize::Serialize};
|
||||
|
||||
use crate::util;
|
||||
|
||||
|
@@ -1,10 +1,3 @@
|
||||
extern crate anyhow;
|
||||
extern crate clap;
|
||||
extern crate indicatif;
|
||||
extern crate rand;
|
||||
extern crate sequoia_openpgp as openpgp;
|
||||
extern crate serde_derive;
|
||||
|
||||
use std::path::PathBuf;
|
||||
|
||||
use anyhow::Result;
|
||||
|
Reference in New Issue
Block a user