@@ -156,12 +156,7 @@ if ( typeof operations !== "undefined" ) {
156156
157157 // Pad each value to the curve's fixed element length so leading zeros
158158 // are preserved (matches Chrome / Chromium-based Edge behavior).
159- var partLen = {
160- "P-256" : 32 , "P-384" : 48 , "P-521" : 66 ,
161- "NUMSP256D1" : 32 , "NUMSP256T1" : 32 ,
162- "NUMSP384D1" : 48 , "NUMSP384T1" : 48 ,
163- "NUMSP512D1" : 64 , "NUMSP512T1" : 64
164- } [ p . algorithm . namedCurve ] ;
159+ var partLen = cryptoECC . curveElementLength ( p . algorithm . namedCurve ) ;
165160 var pad = msrcryptoUtilities . padFront ;
166161 keyPairData . publicKey . x = pad ( keyPairData . publicKey . x , 0 , partLen ) ;
167162 keyPairData . publicKey . y = pad ( keyPairData . publicKey . y , 0 , partLen ) ;
@@ -250,12 +245,7 @@ if ( typeof operations !== "undefined" ) {
250245
251246 // Accept keys with or without trimmed leading zeros and pad each
252247 // value to the curve's fixed element length (Chrome/Chromium behavior).
253- var partLen = {
254- "P-256" : 32 , "P-384" : 48 , "P-521" : 66 ,
255- "NUMSP256D1" : 32 , "NUMSP256T1" : 32 ,
256- "NUMSP384D1" : 48 , "NUMSP384T1" : 48 ,
257- "NUMSP512D1" : 64 , "NUMSP512T1" : 64
258- } [ p . algorithm . namedCurve ] ;
248+ var partLen = cryptoECC . curveElementLength ( p . algorithm . namedCurve ) ;
259249 if ( keyObject . x ) { keyObject . x = msrcryptoUtilities . padFront ( keyObject . x , 0 , partLen ) ; }
260250 if ( keyObject . y ) { keyObject . y = msrcryptoUtilities . padFront ( keyObject . y , 0 , partLen ) ; }
261251 if ( keyObject . d ) { keyObject . d = msrcryptoUtilities . padFront ( keyObject . d , 0 , partLen ) ; }
0 commit comments