fix tool/gnuk_remove_keys*
[gnuk/gnuk.git] / doc / gnuk-keytocard.rst
1 ================================
2 Key import from PC to Gnuk Token
3 ================================
4
5 This document describes how I put my **keys on PC** to the Token, and remove keys from PC.
6
7 Note that there is **no ways** to export keys from the Token, so please be careful.
8
9 .. BREAK
10
11 If you want to import same keys to multiple Tokens, please copy ``.gnupg`` directory before.  In my case, I do something like following:  ::
12
13   $ cp -a .gnupg tmp/gnuk-testing-dir
14
15 See `another document`_ to import keys to the Token from copied directory.
16
17 .. _another document: gnuk-keytocard-noremoval
18
19 After personalization, I put my keys into the Token.
20
21 Here is the log.
22
23 I invoke GnuPG with my key (4ca7babe).  ::
24
25   $ gpg --edit-key 4ca7babe 
26   gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc.
27   This is free software: you are free to change and redistribute it.
28   There is NO WARRANTY, to the extent permitted by law.
29   
30   Secret key is available.
31   
32   pub  2048R/4CA7BABE  created: 2010-10-15  expires: never       usage: SC  
33                        trust: ultimate      validity: ultimate
34   sub  2048R/084239CF  created: 2010-10-15  expires: never       usage: E   
35   sub  2048R/5BB065DC  created: 2010-10-22  expires: never       usage: A   
36   [ultimate] (1). NIIBE Yutaka <gniibe@fsij.org>
37
38
39 Then, GnuPG enters its own command interaction mode.  The prompt is ``gpg>``.
40 To enable ``keytocard`` command, I type ``toggle`` command.  ::
41
42   gpg> toggle
43   
44   sec  2048R/4CA7BABE  created: 2010-10-15  expires: never     
45   ssb  2048R/084239CF  created: 2010-10-15  expires: never     
46   ssb  2048R/5BB065DC  created: 2010-10-22  expires: never     
47   (1)  NIIBE Yutaka <gniibe@fsij.org>
48
49 Firstly, I import my primary key into Gnuk Token.
50 I type ``keytocard`` command, answer ``y`` to confirm keyimport,
51 and type ``1`` to say it's signature key. ::
52
53   gpg> keytocard
54   Really move the primary key? (y/N) y
55   gpg: detected reader `FSIJ Gnuk (0.12-38FF6A06) 00 00'
56   Signature key ....: [none]
57   Encryption key....: [none]
58   Authentication key: [none]
59   
60   Please select where to store the key:
61      (1) Signature key
62      (3) Authentication key
63   Your selection? 1
64
65 Then, GnuPG asks two passwords.  One is the passphrase of **keys on PC** and another is the password of **Gnuk Token**.  Note that the password of the token and the password of the keys on PC are different things, although they can be same.
66
67 I enter these passwords. ::
68
69   You need a passphrase to unlock the secret key for
70   user: "NIIBE Yutaka <gniibe@fsij.org>"
71   2048-bit RSA key, ID 4CA7BABE, created 2010-10-15
72   <PASSWORD-KEY-4CA7BABE>
73   gpg: writing new key
74   gpg: 3 Admin PIN attempts remaining before card is permanently locked
75   
76   Please enter the Admin PIN
77   Enter Admin PIN: <PASSWORD-GNUK>
78   
79   sec  2048R/4CA7BABE  created: 2010-10-15  expires: never     
80                        card-no: F517 00000001
81   ssb  2048R/084239CF  created: 2010-10-15  expires: never     
82   ssb  2048R/5BB065DC  created: 2010-10-22  expires: never     
83   (1)  NIIBE Yutaka <gniibe@fsij.org>
84
85 The primary key is now on the Token and GnuPG says its card-no (F517 00000001) , where F517 is the vendor ID of FSIJ.
86
87 Secondly, I import my subkey of encryption.  I select key number '1'. ::
88
89   gpg> key 1
90   
91   sec  2048R/4CA7BABE  created: 2010-10-15  expires: never     
92                        card-no: F517 00000001
93   ssb* 2048R/084239CF  created: 2010-10-15  expires: never     
94   ssb  2048R/5BB065DC  created: 2010-10-22  expires: never     
95   (1)  NIIBE Yutaka <gniibe@fsij.org>
96
97 You can see that the subkey is marked by '*'.
98 I type ``keytocard`` command to import this subkey to Gnuk Token.  I select ``2`` as it's encryption key. ::
99
100   gpg> keytocard
101   Signature key ....: [none]
102   Encryption key....: [none]
103   Authentication key: [none]
104   
105   Please select where to store the key:
106      (2) Encryption key
107   Your selection? 2
108
109 Then, GnuPG asks the passphrase of **keys on PC** again.  I enter. ::
110
111   You need a passphrase to unlock the secret key for
112   user: "NIIBE Yutaka <gniibe@fsij.org>"
113   2048-bit RSA key, ID 084239CF, created 2010-10-15
114   <PASSWORD-KEY-4CA7BABE>
115   gpg: writing new key
116   
117   sec  2048R/4CA7BABE  created: 2010-10-15  expires: never     
118                        card-no: F517 00000001
119   ssb* 2048R/084239CF  created: 2010-10-15  expires: never     
120                        card-no: F517 00000001
121   ssb  2048R/5BB065DC  created: 2010-10-22  expires: never     
122   (1)  NIIBE Yutaka <gniibe@fsij.org>
123
124 The sub key is now on the Token and GnuPG says its card-no for it.
125   
126 I type ``key 1`` to deselect key number '1'. ::
127
128   gpg> key 1
129   
130   sec  2048R/4CA7BABE  created: 2010-10-15  expires: never     
131                        card-no: F517 00000001
132   ssb  2048R/084239CF  created: 2010-10-15  expires: never     
133                        card-no: F517 00000001
134   ssb  2048R/5BB065DC  created: 2010-10-22  expires: never     
135   (1)  NIIBE Yutaka <gniibe@fsij.org>
136
137 Thirdly, I select sub key of authentication which has key number '2'. ::
138
139   gpg> key 2
140   
141   sec  2048R/4CA7BABE  created: 2010-10-15  expires: never     
142                        card-no: F517 00000001
143   ssb  2048R/084239CF  created: 2010-10-15  expires: never     
144                        card-no: F517 00000001
145   ssb* 2048R/5BB065DC  created: 2010-10-22  expires: never     
146   (1)  NIIBE Yutaka <gniibe@fsij.org>
147
148 You can see that the subkey number '2' is marked by '*'.
149 I type ``keytocard`` command to import this subkey to Gnuk Token.  I select ``3`` as it's authentication key. ::
150
151   gpg> keytocard
152   Signature key ....: [none]
153   Encryption key....: [none]
154   Authentication key: [none]
155   
156   Please select where to store the key:
157      (3) Authentication key
158   Your selection? 3
159
160 Then, GnuPG asks the passphrase of **keys on PC** again.  I enter. ::
161
162   You need a passphrase to unlock the secret key for
163   user: "NIIBE Yutaka <gniibe@fsij.org>"
164   2048-bit RSA key, ID 5BB065DC, created 2010-10-22
165   <PASSWORD-KEY-4CA7BABE>
166   gpg: writing new key
167   
168   sec  2048R/4CA7BABE  created: 2010-10-15  expires: never     
169                        card-no: F517 00000001
170   ssb  2048R/084239CF  created: 2010-10-15  expires: never     
171                        card-no: F517 00000001
172   ssb* 2048R/5BB065DC  created: 2010-10-22  expires: never     
173                        card-no: F517 00000001
174   (1)  NIIBE Yutaka <gniibe@fsij.org>
175
176 The sub key is now on the Token and GnuPG says its card-no for it.
177
178 Lastly, I save changes of **keys on PC** and quit GnuPG. ::
179
180   gpg> save
181   $ 
182
183 All secret keys are imported to Gnuk Token now.  On PC, only references (card-no) to the Token remain.