whycrzg
2021-03-11 6e3aac63644b72036f8aa9348c50488e0e121723
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Êþº¾4ù org/pzone/crypto/SM2$KeyExchangejava/lang/ObjectrALjava/math/BigInteger;RA"Lorg/bouncycastle/math/ec/ECPoint;VZ[BkeyIDLjava/lang/String;keyPairLorg/pzone/crypto/SM2KeyPair;<init>2(Ljava/lang/String;Lorg/pzone/crypto/SM2KeyPair;)VCode
 ()V          
org/pzone/crypto/SM2KeyPair   getPublicKey$()Lorg/bouncycastle/math/ec/ECPoint;
"$#org/pzone/crypto/SM2 %&access$08(Ljava/lang/String;Lorg/bouncycastle/math/ec/ECPoint;)[B    (
LineNumberTableLocalVariableTablethis"Lorg/pzone/crypto/SM2$KeyExchange; keyExchange_1(()Lorg/pzone/crypto/SM2$TransportEntity;
"0 12access$1()Ljava/math/BigInteger;
"4 56access$2.(Ljava/math/BigInteger;)Ljava/math/BigInteger;    8 
": ; access$3
=?> org/bouncycastle/math/ec/ECPoint @Amultiply:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
=C D     normalize    F H$org/pzone/crypto/SM2$TransportEntity
=J KL
getEncoded(Z)[B
GN O+([B[B[BLorg/bouncycastle/math/ec/ECPoint;)V keyExchange_2N(Lorg/pzone/crypto/SM2$TransportEntity;)Lorg/pzone/crypto/SM2$TransportEntity;
=S TU    getXCoord+()Lorg/bouncycastle/math/ec/ECFieldElement;
WYX'org/bouncycastle/math/ec/ECFieldElement Z2 toBigInteger
"\ ]2access$4    _a`java/math/BigInteger bONE
_d e6subtract
_g h6and
_j k6add
m n2 getPrivateKey
_p @6
_r s6mod
"u vwaccess$5'()Lorg/bouncycastle/math/ec/ECCurve$Fp;    Gy z R
|~}#org/bouncycastle/math/ec/ECCurve$Fp € decodePoint&([B)Lorg/bouncycastle/math/ec/ECPoint;    G‚ ƒ K
=… k†F(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
"ˆ ‰Šaccess$65()Lorg/bouncycastle/crypto/params/ECDomainParameters;
ŒŽ1org/bouncycastle/crypto/params/ECDomainParameters 2getH
=‘ ’“
isInfinity()Z•java/lang/IllegalStateException
”    ˜     
_š ›œ toByteArray()[B
=ž ŸU    getYCoord     G(
"£ ¤¥access$7([[B)[B
"§ ¨©access$8([BI)[B    «     ­¯®java/lang/System °±outLjava/io/PrintStream;³协商得B密钥:
µ·¶java/io/PrintStream ¸¹print(Ljava/lang/String;)V
"» ¼½printHexString([B)V
"¿ À¥access$9entity&Lorg/pzone/crypto/SM2$TransportEntity;rBRBx2tBx1
aPublicKeytempxVyVKBsB StackMapTable keyExchange_3Ñ协商得A密钥:    GÓ Ô S
ÖØ×java/util/Arrays ÙÚequals([B[B)ZÜB->A å¯†é’¥ç¡®è®¤æˆåŠŸ
µÞ ß¹printlnáB->A å¯†é’¥ç¡®è®¤å¤±è´¥tA
bPublicKeyUxUyUKAs1sA keyExchange_4)(Lorg/pzone/crypto/SM2$TransportEntity;)VíA->B å¯†é’¥ç¡®è®¤æˆåŠŸïA->B å¯†é’¥ç¡®è®¤å¤±è´¥s2
SourceFileSM2.java InnerClassesõ org/bouncycastle/math/ec/ECCurveFp KeyExchangeTransportEntity!    
i*·*+µ*,µ*+,¶¸!µ'±)™š    ›œ* +, -.i7*¸/¸3µ7*¸9*´7¶<¶BµE»GY*´E¶I*´'*´¶·M°)¥
¨©* 7+,PQª¸/¸3M¸9,¶<¶BN*,µ7*-µE-¶R¶V:¸[¸[²^¶c¶f¶i:*´¶l,¶o¶i¸/¶q:¸t+´x¶{¶B:¶R¶V:¸[¸[²^¶c¶f¶i:¸t+´¶{¶B:¶<¶B¶„¶B:        ¸‡¶‹¶o¶<¶B:
 
¶™ »”Y·–¿*
µ—
¶R¶V¶™: 
¶¶V¶™: ½ Y SY SY+´¡SY*´'S¸¢¸¦: * µª²¬²¶´ ¸º½ Y¼YTSY SY½ Y SY+´¡SY*´'SY¶R¶V¶™SY¶¶V¶™SY-¶R¶V¶™SY-¶¶V¶™S¸¾S¸¾:»GY-¶I*´'*´¶·M°)v³¶¸¹»%¼;¾S¿bÁl‚đÅ¥ƺÇÂÈÊÉÐËÝÌêÍÎÏÐ#Ñ)Ñ?Ò`Ó|ԇҐÕ*˜ª+,ªÁ£ØÄ%…ÅSWÆbHl>Ǒȥɠ   ºð    
ÝÍÊ êÀË šÌ Í Î*ÿÊ G_=__=_===ÏQÂ)*´E¶R¶VM¸[,¸[²^¶c¶f¶iM*´¶l,*´7¶o¶i¸/¶qN¸t+´x¶{¶B:¶R¶V:¸[¸[²^¶c¶f¶i:¸t+´¶{¶B:¶<¶B¶„¶B:¸‡¶‹-¶o¶<¶B:¶™ »”Y·–¿*µ—¶R¶V¶™:    ¶¶V¶™:
½ Y    SY
SY*´'SY+´¡S¸¢¸¦: * µª²¬ж´ ¸º½ Y¼YTSY
SY½ Y    SY*´'SY+´¡SY*´E¶R¶V¶™SY*´E¶¶V¶™SY¶R¶V¶™SY¶¶V¶™S¸¾S¸¾: +´Ò ¸Õ™²¬۶ݧ ²¬à¶Ý½ Y¼YTSY
SY½ Y    SY*´'SY+´¡SY*´E¶R¶V¶™SY*´E¶¶V¶™SY¶R¶V¶™SY¶¶V¶™S¸¾S¸¾: »GY*´E¶I *´'*´¶·M°)š&Þ ßá8âGäQågçvèŠéžê¦ë®ì´îÁïÎðÔðÞñêðíñôòúóôõ õ#öF÷eøqözù†ú‘ü™ýŸýµþØÿ÷þ *Ž)+,)Á Ç8ñâGâÄQØÅv³ãŠŸÉž‹äÁhå     Î[æ
ô5ç z¯è  é ÎSÿ®    G__=_===ÿâ G__=_===    êëj¼*´—¶R¶V¶™M*´—¶¶V¶™N¸t+´x¶{¶B:½ Y¼YTSY-SY½ Y,SY+´¡SY*´'SY¶R¶V¶™SY¶¶V¶™SY*´E¶R¶V¶™SY*´E¶¶V¶™S¸¾S¸¾:+´Ò¸Õ™²¬ì¶Ý§ ²¬î¶Ý±)6    +1Ff…“œ¨³»*>¼+,¼ÁÂ®Ê  Ë +‘œ ð Îÿ³G  = ñòó|ôö    "÷    G"ø