leocavalcante / encrypt

🔒 A set of high-level APIs over PointyCastle for two-way cryptography.
BSD 3-Clause "New" or "Revised" License
348 stars 141 forks source link

Unhandled Exception: type 'ASN1Sequence' is not a subtype of type 'ASN1Integer' in type cast #271

Closed kamrancr7 closed 2 years ago

kamrancr7 commented 2 years ago

while parsing string into private key i got the following exception:

`[VERBOSE-2:ui_dart_state.cc(198)] Unhandled Exception: type 'ASN1Sequence' is not a subtype of type 'ASN1Integer' in type cast

0 RSAKeyParser._parsePrivate (package:encrypt/src/algorithms/rsa.dart:226:43)

1 RSAKeyParser.parse (package:encrypt/src/algorithms/rsa.dart:208:14)

2 _MyHomePageState._incrementCounter (package:practice_test/main.dart:74:41)

3 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:1005:21)

4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198:24)

5 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:613:11)

6 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:298:5)`

following is the code that i'm using:

`var privKey = "-----BEGIN RSA PRIVATE KEY-----\n$rawKey\n-----END RSA PRIVATE KEY-----"; dynamic privateKey = RSAKeyParser().parse(privKey);

// OAEP (SHA256)
encrypter = Encrypter(
    RSA(
      //publicKey: publicKey,
      privateKey: privateKey,
      encoding: RSAEncoding.OAEP,
    )
);
encrypted = encrypter.encrypt(plainText);
decrypted = encrypter.decrypt(encrypted);

print('\nOAEP (SHA256)');
print(decrypted);
print(encrypted.bytes);
print(encrypted.base16);
print(encrypted.base64);`
kamrancr7 commented 2 years ago

Issue is solved by just removing RSA keyword. i changed this var privKey = "-----BEGIN RSA PRIVATE KEY-----\n$rawKey\n-----END RSA PRIVATE KEY-----"; to this var privKey = "-----BEGIN PRIVATE KEY-----\n$rawKey\n-----END PRIVATE KEY-----";

lozn00 commented 2 years ago

thank you

lozn00 commented 2 years ago

is not smart

lozn00 commented 2 years ago

still error ad state: Can't encrypt without a public key, null given.

lozn00 commented 2 years ago

    RSAPrivateKey privateKeyObj = parser.parse(privateKey) as RSAPrivateKey;
    final encrypter = Encrypter(RSA(privateKey: privateKeyObj));
    return encrypter.encrypt(content).base64;
var privateKey = """\
-----BEGIN PRIVATE KEY-----
MIICcwIBADANBgkqhkiG9w0BAQEFAASCAl0wggJZAgEAAoGBAJaPdYkgrnLv+EBRGw2YJOm6wh12
Qd9RHb4tlxGJR6c4NKmNm9ngUns9EfBjdgKvfkqaolH+/eKeuAahNP5+T91NYAyMAJN79lFynbOh
dwQG32ttX+vBLCPJFnsjiGI4TdnmMerv05WYBWdHhSWn7DEtvAhzOkHvlnQ/u6MxwBefAgMBAAEC
f1lk1GSXAv07fiqx/V4U99XPDXJwxKvTfdVtPEUtPV4MATiq296BUnfZyszwQSFXEaU6KyaEQDpO
AvXswYpZdREHSXH3BeZSQe1DTRi85xA6RKSaiXNaTZ608+G1SCGsBjbCcae7bqqZv5OH+oPFKWJa
rSqi6YjhauQv0sGVv4ECQQDQ8Opjy2I8HCjE4sna1YKYmtKC5dT6O/m4eISnnyLV5dgnGqwqy8qq
RzxdzkFaUVEoiXPiiJFfqumRdf+T+0HXAkEAuHhw5Az/08xEbwfIBqHXGy7rqH1dsyRru3Euol9p
kU1AbSQFNbml0hjRLdUhW5+q8OKLngj7BDYH+orJqmSveQJAUB4xIncYgggiMezsjfcVDsM/OWY7
1oAs72l3JHdG+lIaIlR99CMU4VpTcXznXmSUBEFAqHrJk6+LxHVEvU+5HQJAHRzs/CDNEzkOp9M7
j0hlcWXTTVETw50A36E6MegK+iKOA2uG4va8o87E3I3haNtnGAM486UJMJ3yXmke8KRZSQJAG/VH
t77XdwFrjala7pNd3wlH4KCO5tnwkP9yPlNujA5RbjBCllREcF2Wcelem4jxI/kxSvbI5fm+jrfW
yc1b7w==
-----END PRIVATE KEY-----
""";
lozn00 commented 2 years ago

I NEED private key encrypt and public key decrypt