@dotrino/vault 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/enroll.js +8 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dotrino/vault",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Usa ESTE dispositivo (navegador) como bóveda/CA del ecosistema Dotrino: atiende enrolamientos por el proxy y firma certificados de delegación a tus máquinas. Incluye el cliente de SERVICIO (Node): un proyecto se enrola una vez y jala sus credenciales del vault en vez del .env (`import '@dotrino/vault/config'`).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"pairing"
|
|
43
43
|
],
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"@dotrino/identity": ">=0.
|
|
45
|
+
"@dotrino/identity": ">=0.25.0",
|
|
46
46
|
"@dotrino/proxy-client": ">=0.6.0"
|
|
47
47
|
},
|
|
48
48
|
"license": "MIT",
|
package/src/enroll.js
CHANGED
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
* `docs/pairing-protocol.md`).
|
|
31
31
|
*/
|
|
32
32
|
import { verifyDeviceSig, pubkeyId, commitCode } from '@dotrino/identity/capabilities'
|
|
33
|
+
import { verifyContinuity } from '@dotrino/identity/acta'
|
|
33
34
|
|
|
34
35
|
/** Un token de emparejamiento vale 5 min. */
|
|
35
36
|
export const PAIRING_TTL_MS = 5 * 60 * 1000
|
|
@@ -157,6 +158,12 @@ export function createEnrollDesk ({
|
|
|
157
158
|
pend.dpub = d.dpub
|
|
158
159
|
pend.deviceId = deviceId
|
|
159
160
|
pend.commit = d.commit
|
|
161
|
+
// Certificado de continuidad (opcional): lo firma la identidad que se une, con su
|
|
162
|
+
// propia llave. Se comprueba aquí y se guarda con el miembro al aprobar.
|
|
163
|
+
if (d.continuity) {
|
|
164
|
+
const okC = await verifyContinuity(d.continuity)
|
|
165
|
+
pend.continuity = (okC && d.continuity.member === d.dpub) ? d.continuity : null
|
|
166
|
+
}
|
|
160
167
|
pend.from = from // la bóveda NO conoce el código: lo aprende cuando lo tipeas
|
|
161
168
|
if (d.label) pend.label = String(d.label).slice(0, 60)
|
|
162
169
|
|
|
@@ -206,7 +213,7 @@ export function createEnrollDesk ({
|
|
|
206
213
|
try {
|
|
207
214
|
if (typeof identity.admitMember === 'function') {
|
|
208
215
|
const caps = scopeToCaps(pend.scope)
|
|
209
|
-
if (caps.length) await identity.admitMember({ pub: pend.dpub, label: pend.label || '', caps, cert })
|
|
216
|
+
if (caps.length) await identity.admitMember({ pub: pend.dpub, label: pend.label || '', caps, cert, continuity: pend.continuity || null })
|
|
210
217
|
}
|
|
211
218
|
acta = (await identity.profileActa?.())?.acta || null
|
|
212
219
|
} catch (e) { log('[vault] no se pudo admitir en el acta:', e.message) }
|