-
gpg for dummiesdei FuorileggeResoconto di test e varie ed eventuali per i più pigri: come ##fdt ha imparato a usare gpg.
[definizioni]
chiave pubblica: quella che può cifrare un file, ma non può decifrarlo
chiave privata: serve a decifrare quello che è stato cifrato con la chiave pubblica
mettiamo che giambo e nathan debbano scambiarsi delle lettere d'amore, giambo ha una coppia di chiavi, nathan no.
userò giambo> e jolanda> rispettivamente come le shell dei due pc. Sotto i comandi l'output atteso. L'esempio è con una shell unix (linux/bsd/mac), su windows non dovrebbe cambiare di molto.
[generazione delle coppie di chiavi]
jolanda> gpg --gen-key
---
qui nathan segue le istruzioni a video scegliendo jolanda come alias,
rsa e rsa come algoritmo per la chiave di lunghezza almeno di 2048bit
---
[lista delle proprie chiavi pubbliche]
giambo> gpg --list-keys
/home/giambo/.gnupg/pubring.gpg
-------------------------------
pub 2048R/DEADBEEF 2011-07-28
uid giambo
sub 2048R/CAFEBABE 2011-07-28
--- intanto a cesena... ---
jolanda> gpg --list-keys
/home/natanasso/.gnupg/pubring.gpg
----------------------------------
pub 2048R/FACEB00C 2011-07-28
uid jolanda
sub 2048R/DEFEC8ED 2011-07-28
[esportazione/importazione delle chiavi pubbliche]
giambo> gpg -a --export giambo >> giambo.pubkey
jolanda> gpg -a --import giambo.pubkey
jolanda> gpg -a --export jolanda >> jolanda.pubkey
giambo> gpg -a --import jolanda.pubkey
--- ora entrambi con --list-keys vedranno le reciproche chiavi pubbliche ---
[ora giambo manda un messaggio a nathan]
giambo> gpg -ae
Non hai specificato un user ID. (puoi usare "-r")
Current recipients:
Inserisci l'user ID. Termina con una riga vuota: jol
Current recipients:
2048R/DEFEC8ED 2011-07-27 "jolanda"
Inserisci l'user ID. Termina con una riga vuota:
ti voglio bene
giambo
D (giambo ha premuto ctrl+d, viene mostrato l'output da inviare a nathan)
--- nathan ha ricevuto il messaggio e l'ha salvato nel file messaggio_segreto ---
jolanda> cat messaggio_segreto | gpg -a
ti voglio bene
giambo
jolanda>
[se qualcuno che non ha la chiave privata prova a decifrare il messaggio...]
giambo> cat messaggio_segreto | gpg -a
gpg: encrypted with 2048-bit RSA key, ID DEFEC8ED, created 2011-07-28
"jolanda"
gpg: decifratura fallita: la chiave segreta non è disponibile
giambo>
--- è possibile scegliere più destinatari, compreso il proprio alias, e tutti i destinatari potranno con la propria chiave privata aprire il messaggio ---
suggerimenti/imprecisioni/errori? segnalateli pure
-----------------------------------------------------------
Modificato dall' autore il 28 luglio 2011 09.57
-----------------------------------------------------------Young professional woman and busy mom.-
Re: gpg for dummiesdei FuorileggeScritto daNon Autenticatoil 2011-07-28 10:38:00.0 alle 2011-07-28 10:38:00.0
- Scritto da: ::1
> Resoconto di test e varie ed eventuali per i più
> pigri: come ##fdt ha imparato a usare
> gpg.
>
> [definizioni]
> chiave pubblica: quella che può cifrare un file,
> ma non può
> decifrarlo
> chiave privata: serve a decifrare quello che è
> stato cifrato con la chiave
> pubblica
>
> mettiamo che giambo e nathan debbano scambiarsi
> delle lettere d'amore, giambo ha una coppia di
> chiavi, nathan
> no.
> userò giambo> e jolanda> rispettivamente come le
> shell dei due pc. Sotto i comandi l'output
> atteso. L'esempio è con una shell unix
> (linux/bsd/mac), su windows non dovrebbe cambiare
> di
> molto.
>
> [generazione delle coppie di chiavi]
> jolanda> gpg --gen-key
> ---
> qui nathan segue le istruzioni a video scegliendo
> jolanda come
> alias,
> rsa e rsa come algoritmo per la chiave di
> lunghezza almeno di
> 2048bit
> ---
>
> [lista delle proprie chiavi pubbliche]
> giambo> gpg --list-keys
> /home/giambo/.gnupg/pubring.gpg
> -------------------------------
> pub 2048R/DEADBEEF 2011-07-28
> uid giambo
> sub 2048R/CAFEBABE 2011-07-28
>
> --- intanto a cesena... ---
> jolanda> gpg --list-keys
> /home/natanasso/.gnupg/pubring.gpg
> ----------------------------------
> pub 2048R/FACEB00C 2011-07-28
> uid jolanda
> sub 2048R/DEFEC8ED 2011-07-28
>
> [esportazione/importazione delle chiavi pubbliche]
>
> giambo> gpg -a --export giambo >> giambo.pubkey
> jolanda> gpg -a --import giambo.pubkey
>
> jolanda> gpg -a --export jolanda >> jolanda.pubkey
> giambo> gpg -a --import jolanda.pubkey
> --- ora entrambi con --list-keys vedranno le
> reciproche chiavi pubbliche
> ---
>
> [ora giambo manda un messaggio a nathan]
> giambo> gpg -ae
> Non hai specificato un user ID. (puoi usare "-r")
>
> Current recipients:
>
> Inserisci l'user ID. Termina con una riga vuota:
> jol
>
> Current recipients:
> 2048R/DEFEC8ED 2011-07-27 "jolanda"
>
> Inserisci l'user ID. Termina con una riga vuota:
> ti voglio bene
> giambo
> D (giambo ha premuto ctrl+d, viene mostrato
> l'output da inviare a
> nathan)
>
> --- nathan ha ricevuto il messaggio e l'ha
> salvato nel file messaggio_segreto
> ---
> jolanda> cat messaggio_segreto | gpg -a
> ti voglio bene
> giambo
> jolanda>
>
> [se qualcuno che non ha la chiave privata prova a
> decifrare il
> messaggio...]
> giambo> cat messaggio_segreto | gpg -a
> gpg: encrypted with 2048-bit RSA key, ID
> DEFEC8ED, created
> 2011-07-28
> "jolanda"
> gpg: decifratura fallita: la chiave segreta non è
> disponibile
> giambo>
>
> --- è possibile scegliere più destinatari,
> compreso il proprio alias, e tutti i destinatari
> potranno con la propria chiave privata aprire il
> messaggio
> ---
>
>
> suggerimenti/imprecisioni/errori? segnalateli
> pure
>
> --------------------------------------------------
> Modificato dall' autore il 28 luglio 2011 09.57
> --------------------------------------------------
esiste una implementazione javascript del pgp?-
Re: gpg for dummiesdei Fuorilegge> esiste una implementazione javascript del pgp?
no, esiste solo rsa. da quello ci si dovrebbe appoggiare sopra per creare un pgp in chiappascript. ci pensavo stamattina.
Editttt!!! Probabilmente ho cercato gpg invece di pgp, perché google dice che ci sono.
-----------------------------------------------------------
Modificato dall' autore il 28 luglio 2011 10.42
-----------------------------------------------------------Young professional woman and busy mom.-
Re: gpg for dummiesdei FuorileggeScritto daNon Autenticatoil 2011-07-28 10:47:00.0 alle 2011-07-28 10:47:00.0
- Scritto da: ::1
> > esiste una implementazione javascript del pgp?
>
> no, esiste solo rsa. da quello ci si dovrebbe
> appoggiare sopra per creare un pgp in
> chiappascript. ci pensavo
> stamattina.
>
> Editttt!!! Probabilmente ho cercato gpg invece di
> pgp, perché google dice che ci
> sono.
> --------------------------------------------------
> Modificato dall' autore il 28 luglio 2011 10.42
> --------------------------------------------------
dai fallo...
se lo fai io poi scrivo uno scriptino per greasmonkey per mettere il pgp anche in gmail gtalk e nella chat di faccialibro
-
Re: gpg for dummiesdei FuorileggeScritto daNon Autenticatoil 2011-07-28 11:41:00.0 alle 2011-07-28 11:41:00.0> > > esiste una implementazione javascript del pgp?
> >
> > no, esiste solo rsa. da quello ci si dovrebbe
> > appoggiare sopra per creare un pgp in
> > chiappascript. ci pensavo
> > stamattina.
> >
> > Editttt!!! Probabilmente ho cercato gpg invece
> di
> > pgp, perché google dice che ci
> > sono.
> dai fallo...
Lo chiameremo jpg.
-
-
-
-
richiestadei FuorileggeScritto daNon Autenticatoil 2011-07-28 14:19:00.0 alle 2011-07-28 14:19:00.0> suggerimenti/imprecisioni/errori?
> segnalateli pure
Come si fa a mandare un messaggio broadcast a utente1 utente2 etc.?
È possibile mettere l'elenco dei destinatari in un file, ad esempio se sono molti?
Come funziona la cifratura per più destinatari dal lato teorico?
GS-
Re: richiestadei FuorileggeScritto daNon Autenticatoil 2011-07-28 14:27:00.0 alle 2011-07-28 14:27:00.0
- Scritto da:
> > suggerimenti/imprecisioni/errori?
> > segnalateli pure
>
> Come si fa a mandare un messaggio broadcast a
> utente1 utente2
> etc.?
>
> È possibile mettere l'elenco dei destinatari in
> un file, ad esempio se sono
> molti?
>
> Come funziona la cifratura per più destinatari
> dal lato
> teorico?
>
> GS
già e' contorta l'idea di criptare una cosa con una chiave e decriptarla con un'altra.
ma criptare una cosa con una chiave in modo che sia decriptabile da + chiavi mi sembra impossibile poi non so' in realtà sono un bamba e di crittologia non capisco niente!-
Re: richiestadei Fuorilegge
- Scritto da:
>
> - Scritto da:
> > > suggerimenti/imprecisioni/errori?
> > > segnalateli pure
> >
> > Come si fa a mandare un messaggio broadcast a
> > utente1 utente2
> > etc.?
> >
> > È possibile mettere l'elenco dei destinatari in
> > un file, ad esempio se sono
> > molti?
> >
> > Come funziona la cifratura per più destinatari
> > dal lato
> > teorico?
> >
> > GS
>
> già e' contorta l'idea di criptare una cosa con
> una chiave e decriptarla con
> un'altra.
> ma criptare una cosa con una chiave in modo che
> sia decriptabile da + chiavi mi sembra
> impossibile poi non so' in realtà sono un bamba e
> di crittologia non capisco
> niente!
credo che 'banalmente' venga cifrato più volte.
Il messaggio di stamattina era cifrato per 5 destinatari, lo stesso cifrato solo con una chiave pubblica è di sole 7 righe e mezzo.Young professional woman and busy mom.-
Re: richiestadei FuorileggeScritto daNon Autenticatoil 2011-07-28 14:42:00.0 alle 2011-07-28 14:42:00.0> > > > suggerimenti/imprecisioni/errori?
> > > > segnalateli pure
> > >
> > > Come si fa a mandare un messaggio broadcast a
> > > utente1 utente2
> > > etc.?
> > >
> > > È possibile mettere l'elenco dei destinatari
> in
> > > un file, ad esempio se sono
> > > molti?
> > >
> > > Come funziona la cifratura per più destinatari
> > > dal lato
> > > teorico?
> > >
> > > GS
> >
> > già e' contorta l'idea di criptare una cosa con
> > una chiave e decriptarla con
> > un'altra.
> > ma criptare una cosa con una chiave in modo che
> > sia decriptabile da + chiavi mi sembra
> > impossibile poi non so' in realtà sono un bamba
> e
> > di crittologia non capisco
> > niente!
>
> credo che 'banalmente' venga cifrato più volte.
> Il messaggio di stamattina era cifrato per 5
> destinatari, lo stesso cifrato solo con una
> chiave pubblica è di sole 7 righe e mezzo.
Però se per decifrare serve la mia chiave privata, servirebbero anche la tua, quella di sassofono etc. e come fa il programma a conoscerle?-
Re: richiestadei Fuorilegge
- Scritto da:
> > > > > suggerimenti/imprecisioni/errori?
> > > > > segnalateli pure
> > > >
> > > > Come si fa a mandare un messaggio broadcast
> a
> > > > utente1 utente2
> > > > etc.?
> > > >
> > > > È possibile mettere l'elenco dei destinatari
> > in
> > > > un file, ad esempio se sono
> > > > molti?
> > > >
> > > > Come funziona la cifratura per più
> destinatari
> > > > dal lato
> > > > teorico?
> > > >
> > > > GS
> > >
> > > già e' contorta l'idea di criptare una cosa
> con
> > > una chiave e decriptarla con
> > > un'altra.
> > > ma criptare una cosa con una chiave in modo
> che
> > > sia decriptabile da + chiavi mi sembra
> > > impossibile poi non so' in realtà sono un
> bamba
> > e
> > > di crittologia non capisco
> > > niente!
> >
> > credo che 'banalmente' venga cifrato più volte.
> > Il messaggio di stamattina era cifrato per 5
> > destinatari, lo stesso cifrato solo con una
> > chiave pubblica è di sole 7 righe e mezzo.
>
> [img]http://www.edupics.com/thinking-t11499.jpg[/i
>
> Però se per decifrare serve la mia chiave
> privata, servirebbero anche la tua, quella di
> sassofono etc. e come fa il programma a
> conoscerle?
non crea una catena, appiccica i pezzi uno dopo l'altro imho. Ma non lo so di per certo, è solo l'unica spiegazione plausibile che mi viene in mente.Young professional woman and busy mom.-
Re: richiestadei FuorileggeScritto daNon Autenticatoil 2011-07-28 21:43:00.0 alle 2011-07-28 21:43:00.0> > > > > > suggerimenti/imprecisioni/errori?
> > > > > > segnalateli pure
> > > > >
> > > > > Come si fa a mandare un messaggio
> broadcast
> > a
> > > > > utente1 utente2
> > > > > etc.?
> > > > >
> > > > > È possibile mettere l'elenco dei
> destinatari
> > > in
> > > > > un file, ad esempio se sono
> > > > > molti?
> > > > >
> > > > > Come funziona la cifratura per più
> > destinatari
> > > > > dal lato
> > > > > teorico?
> > > > >
> > > > > GS
> > > >
> > > > già e' contorta l'idea di criptare una cosa
> > con
> > > > una chiave e decriptarla con
> > > > un'altra.
> > > > ma criptare una cosa con una chiave in modo
> > che
> > > > sia decriptabile da + chiavi mi sembra
> > > > impossibile poi non so' in realtà sono un
> > bamba
> > > e
> > > > di crittologia non capisco
> > > > niente!
> > >
> > > credo che 'banalmente' venga cifrato più
> volte.
> > > Il messaggio di stamattina era cifrato per 5
> > > destinatari, lo stesso cifrato solo con una
> > > chiave pubblica è di sole 7 righe e mezzo.
> >
> >
> [img]http://www.edupics.com/thinking-t11499.jpg[/i
> >
> > Però se per decifrare serve la mia chiave
> > privata, servirebbero anche la tua, quella di
> > sassofono etc. e come fa il programma a
> > conoscerle?
>
> non crea una catena, appiccica i pezzi uno dopo
> l'altro imho. Ma non lo so di per certo, è solo
> l'unica spiegazione plausibile che mi viene in
> mente.
Ripensandoci l'ho immaginato anch'io. Occorre vedere se la lunghezza del messaggio è (approssimativamente) multiplo della lunghezza dello stesso messaggio cifrato con una chiave sola.
Solo che così inviare una newsletter a un milione di destinatari diventa pesantino.
-
Re: richiestadei FuorileggeScritto daNon Autenticatoil 2012-04-05 15:43:04.0 alle 2012-04-05 15:43:04.0Scritto da:
> > > > > > > suggerimenti/imprecisioni/errori?
> > > > > > > segnalateli pure
> > > > > >
> > > > > > Come si fa a mandare un messaggio
> > broadcast
> > > a
> > > > > > utente1 utente2
> > > > > > etc.?
> > > > > >
> > > > > > È possibile mettere l'elenco dei
> > destinatari
> > > > in
> > > > > > un file, ad esempio se sono
> > > > > > molti?
> > > > > >
> > > > > > Come funziona la cifratura per più
> > > destinatari
> > > > > > dal lato
> > > > > > teorico?
> > > > > >
> > > > > > GS
> > > > >
> > > > > già e' contorta l'idea di criptare una cosa
> > > con
> > > > > una chiave e decriptarla con
> > > > > un'altra.
> > > > > ma criptare una cosa con una chiave in modo
> > > che
> > > > > sia decriptabile da + chiavi mi sembra
> > > > > impossibile poi non so' in realtà sono un
> > > bamba
> > > > e
> > > > > di crittologia non capisco
> > > > > niente!
> > > >
> > > > credo che 'banalmente' venga cifrato più
> > volte.
> > > > Il messaggio di stamattina era cifrato per 5
> > > > destinatari, lo stesso cifrato solo con una
> > > > chiave pubblica è di sole 7 righe e mezzo.
> > >
> > >
> > [img]http://www.edupics.com/thinking-t11499.jpg[/i
> > >
> > > Però se per decifrare serve la mia chiave
> > > privata, servirebbero anche la tua, quella di
> > > sassofono etc. e come fa il programma a
> > > conoscerle?
> >
> > non crea una catena, appiccica i pezzi uno dopo
> > l'altro imho. Ma non lo so di per certo, è solo
> > l'unica spiegazione plausibile che mi viene in
> > mente.
>
> Ripensandoci l'ho immaginato anch'io. Occorre vedere se la lunghezza del messaggio è (approssimativamente) multiplo della lunghezza dello stesso messaggio cifrato con una chiave sola.
>
> Solo che così inviare una newsletter a un milione di destinatari diventa pesantino.
Il messaggio è cifrato una sola volta con quella che viene chiamata "chiave di sessione".
La chiave di sessione è poi cifrata usando tutte le chiavi pubbliche dei destinatari ed inclusa nel messaggio n-volte (dove n è il numero di destinatari, ogni versione cifrata con una chiave pubblica diversa).
In questo modo il messaggio cifrato aumenta di dimensione di soli circa 150 byte per ogni chiave pubblica di 1024 bit.
Wakko.-
Re: richiestadei FuorileggeScritto daNon Autenticatoil 2012-04-05 15:47:31.0 alle 2012-04-05 15:47:31.0> > > > > > > > suggerimenti/imprecisioni/errori?
> > > > > > > > segnalateli pure
> > > > > > >
> > > > > > > Come si fa a mandare un messaggio
> > > broadcast
> > > > a
> > > > > > > utente1 utente2
> > > > > > > etc.?
> > > > > > >
> > > > > > > È possibile mettere l'elenco dei
> > > destinatari
> > > > > in
> > > > > > > un file, ad esempio se sono
> > > > > > > molti?
> > > > > > >
> > > > > > > Come funziona la cifratura per più
> > > > destinatari
> > > > > > > dal lato
> > > > > > > teorico?
> > > > > > >
> > > > > > > GS
> > > > > >
> > > > > > già e' contorta l'idea di criptare una cosa
> > > > con
> > > > > > una chiave e decriptarla con
> > > > > > un'altra.
> > > > > > ma criptare una cosa con una chiave in modo
> > > > che
> > > > > > sia decriptabile da + chiavi mi sembra
> > > > > > impossibile poi non so' in realtà sono un
> > > > bamba
> > > > > e
> > > > > > di crittologia non capisco
> > > > > > niente!
> > > > >
> > > > > credo che 'banalmente' venga cifrato più
> > > volte.
> > > > > Il messaggio di stamattina era cifrato per 5
> > > > > destinatari, lo stesso cifrato solo con una
> > > > > chiave pubblica è di sole 7 righe e mezzo.
> > > >
> > > >
> > > [img]http://www.edupics.com/thinking-t11499.jpg[/i
> > > >
> > > > Però se per decifrare serve la mia chiave
> > > > privata, servirebbero anche la tua, quella di
> > > > sassofono etc. e come fa il programma a
> > > > conoscerle?
> > >
> > > non crea una catena, appiccica i pezzi uno dopo
> > > l'altro imho. Ma non lo so di per certo, è solo
> > > l'unica spiegazione plausibile che mi viene in
> > > mente.
> >
> > Ripensandoci l'ho immaginato anch'io. Occorre vedere se la lunghezza del messaggio è (approssimativamente) multiplo della lunghezza dello stesso messaggio cifrato con una chiave sola.
> >
> > Solo che così inviare una newsletter a un milione di destinatari diventa pesantino.
>
> Il messaggio è cifrato una sola volta con quella che viene chiamata "chiave di sessione".
> La chiave di sessione è poi cifrata usando tutte le chiavi pubbliche dei destinatari ed inclusa nel messaggio n-volte (dove n è il numero di destinatari, ogni versione cifrata con una chiave pubblica diversa).
> In questo modo il messaggio cifrato aumenta di dimensione di soli circa 150 byte per ogni chiave pubblica di 1024 bit.
>
> Wakko non autenticato.
Ottima risposta. GS
-
-
-
-
-
-
Re: richiestadei Fuorilegge
- Scritto da:
>
> - Scritto da:
> > > suggerimenti/imprecisioni/errori?
> > > segnalateli pure
> >
> > Come si fa a mandare un messaggio broadcast a
> > utente1 utente2
> > etc.?
> >
> > È possibile mettere l'elenco dei destinatari in
> > un file, ad esempio se sono
> > molti?
> >
> > Come funziona la cifratura per più destinatari
> > dal lato
> > teorico?
> >
> > GS
>
> già e' contorta l'idea di criptare una cosa con
> una chiave e decriptarla con
> un'altra.
> ma criptare una cosa con una chiave in modo che
> sia decriptabile da + chiavi mi sembra
> impossibile poi non so' in realtà sono un bamba e
> di crittologia non capisco
> niente!
Si può fare.
gpg -e -r <destinatario1> -r <destinatario2> ... <filedacifrare>
Non mi pare invece che gpg supporti la possibilità di leggere i destinatari da un file. Però è possibile creare dei gruppi di destinatari a cui si inviano file cifrati spesso con, mi pare, il comando --group.
In ogni modo è anche possibile usare delle GUI per GPG, una che usavo io si chiama kgpg e funzionava piuttosto bene oltre che essere molto più intuitiva dell'interfaccia a linea di comando che per forza di cose è vasta e complessa.-
Re: richiestadei FuorileggeScritto daNon Autenticatoil 2011-07-28 14:45:00.0 alle 2011-07-28 14:45:00.0> > > > suggerimenti/imprecisioni/errori?
> > > > segnalateli pure
> > >
> > > Come si fa a mandare un messaggio broadcast a
> > > utente1 utente2
> > > etc.?
> > >
> > > È possibile mettere l'elenco dei destinatari
> in
> > > un file, ad esempio se sono
> > > molti?
> > >
> > > Come funziona la cifratura per più destinatari
> > > dal lato
> > > teorico?
> > >
> > > GS
> >
> > già e' contorta l'idea di criptare una cosa con
> > una chiave e decriptarla con
> > un'altra.
> > ma criptare una cosa con una chiave in modo che
> > sia decriptabile da + chiavi mi sembra
> > impossibile poi non so' in realtà sono un bamba
> e
> > di crittologia non capisco
> > niente!
>
> Si può fare.
> gpg -e -r <destinatario1> -r <destinatario2> ...
> <filedacifrare>
>
> Non mi pare invece che gpg supporti la
> possibilità di leggere i destinatari da un file.
> Però è possibile creare dei gruppi di destinatari
> a cui si inviano file cifrati spesso con, mi
> pare, il comando
> --group.
Perché se i destinatari sono tanti a specificarli uno per uno ci si consuma i diti!
> In ogni modo è anche possibile usare delle GUI
> per GPG, una che usavo io si chiama kgpg e
> funzionava piuttosto bene oltre che essere molto
> più intuitiva dell'interfaccia a linea di comando
> che per forza di cose è vasta e complessa.
Usare una GUI richiede di capire come funziona il programma e imparare la GUI, troppe cose. A meno che non sia una GUI molto semplice o particolarmente azzeccata.-
Re: richiestadei Fuorilegge- Scritto da:
> A meno
> che non sia una GUI molto semplice o
> particolarmente
> azzeccata.
Infatti è così. È decisamente più facile e intuitivo usare la GUI che la linea di comando.-
Re: richiestadei Fuorilegge
- Scritto da: Daisuke Niwa
> - Scritto da:
> > A meno
> > che non sia una GUI molto semplice o
> > particolarmente
> > azzeccata.
>
> Infatti è così. È decisamente più facile e
> intuitivo usare la GUI che la linea di
> comando.
Quando gli ho linkato questo il gattaggio s'è arrabbiato:
http://www.gpg4win.org/
Young professional woman and busy mom.
-
-
-
-
-
-