MCPcopy Create free account
hub / github.com/Dstack-TEE/dstack / pack25519

Function pack25519

vmm/src/x25519.js:143–166  ·  view source on GitHub ↗
(o, n)

Source from the content-addressed store, hash-verified

141 }
142 }
143 function pack25519(o, n) {
144 var i, j, b;
145 var m = gf(), t = gf();
146 for (i = 0; i < 16; i++)
147 t[i] = n[i];
148 car25519(t);
149 car25519(t);
150 car25519(t);
151 for (j = 0; j < 2; j++) {
152 m[0] = t[0] - 0xffed;
153 for (i = 1; i < 15; i++) {
154 m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);
155 m[i - 1] &= 0xffff;
156 }
157 m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);
158 b = (m[15] >> 16) & 1;
159 m[14] &= 0xffff;
160 sel25519(t, m, 1 - b);
161 }
162 for (i = 0; i < 16; i++) {
163 o[2 * i] = t[i] & 0xff;
164 o[2 * i + 1] = t[i] >> 8;
165 }
166 }
167 function neq25519(a, b) {
168 var c = new Uint8Array(32), d = new Uint8Array(32);
169 pack25519(c, a);

Callers 5

neq25519Function · 0.70
par25519Function · 0.70
crypto_scalarmultFunction · 0.70
packFunction · 0.70
convertPublicKeyFunction · 0.70

Calls 3

gfFunction · 0.70
car25519Function · 0.70
sel25519Function · 0.70

Tested by

no test coverage detected