Hi David, It works fine!
Thanks zlf > On Oct 14, 2015, at 03:05, David Hook <d...@autochthonous.org> wrote: > > > Hi, > > Base64 data by itself isn't PEM data, there need to be headers and footers > around it. If you have a look at what the PemWriter produces you should get > the idea. > > In this case you can get by with > > using Org.BouncyCastle.Security; > using Org.BouncyCastle.Utilities.Encoders; > > byte[] keyData = Base64.Decode("MIIC...."); > > AsymmetricKeyParameter privKey = PrivateKeyFactory.CreateKey(keyData); > > Regards, > > David > > On 13/10/15 22:04, Lingfeng Zhuang wrote: >> I generate private key in java, but failed load in C# with BouncyCastle. >> >> C# >> PemReader pemReader = new PemReader(new StringReader( >> >> @"MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJx5AYmcTmkHIH3qUFmLw7pmPoTS >> pAS/1RnobIMSnjk5L3dgzvB47Q+24XZ1G4o/H/K8ZoCBOrQ61cFWKLzg8jr756n15c/O9L95YSkl >> OhjGvf3kIw+3dphhfkWuWrH1iIxZ5Q9zxhu8H0zfWTB7XPYVuwoPz1GRDr9Co9+sJi4HAgMBAAEC >> gYB0B69CMixa6bQIazbGEERF9wepSuHhu7b0jUvaLnYyDNvL9HfADowMORsb0l9ntsOkJl0EMdAs >> Ueysf42Z8lzsgp4VbTUsbwmX7lsS9fPY1fTVLDLZ8koOco+h+U/aXF10vuSnbJJqDbEDVqOWeGOz >> vcIkP+5KZ1agZvcLj/f9EQJBANh2Hygv3UcUTRUcOvkVvCXdl4pg3DvjPpG6T1be2ZZqpclDpqJn >> 4q7bC7lk6JVSXuCvuu5tZYGext1B4N0btOMCQQC5DcWIHFJm4+W5Hb4CeGCqHixr5oQSlxZGvdE7 >> JPjPFo/oy0PVA6Aj6YHurjmc2de1NUWIQgpJ0bgfIrTS4M+NAkAeozlturibIuh2IHTIZKcoxOB6 >> GZOSdmuYvMIWDZzGiXnFruma+xE+popWR04UNIBxVO4kaR+A5TRIhNaK9Sz5AkBcbquO7A6gxA63 >> 40pIc5ZdAstPbgnkO0FuPlvnPfVlgzCIqBcOrEvuBDHZZX7zgMBFDAHaKJp4+t8L9kr51j71AkEA >> lPVyDQfgzQpFDjdcnJe+rgIi0Q9hrcJmI2N3hP2vhX1Kdh+JzAeAdbYppPCVqO/Ovv+akES8hu8s >> uKiWr7FfxA==")); >> object obj = pemReader.ReadObject(); >> >> obj is null. >> >> JAVA Source Code: >> >> import java.security.KeyPair; >> import java.security.KeyPairGenerator; >> import java.security.PrivateKey; >> import java.security.PublicKey; >> import java.security.SecureRandom; >> >> public class RSAEncrypt { >> public static void createKeyPairs() throws Exception { >> // create the keys >> KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA"); >> generator.initialize(1024, new SecureRandom()); >> KeyPair pair = generator.generateKeyPair(); >> PublicKey pubKey = pair.getPublic(); >> PrivateKey privKey = pair.getPrivate(); >> byte[] pk = pubKey.getEncoded(); >> byte[] privk = privKey.getEncoded(); >> String strpk = new String(getASE64FromBytes(pk)); >> String strprivk = new String(getASE64FromBytes(privk)); >> >> System.out.println("PublicKey Base64:\r\n" + strpk); >> System.out.println(); >> System.out.println("PrivateKey Base64:\r\n" + strprivk); >> } >> >> public static void main(String[] args) throws Exception { >> createKeyPairs(); >> } >> >> public static String getASE64FromBytes(byte[] s) { >> if (s == null) >> return null; >> return (new sun.misc.BASE64Encoder()).encode(s); >> } >> } >> >> JAVA console output: >> >> PublicKey Base64: >> MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCceQGJnE5pByB96lBZi8O6Zj6E0qQEv9UZ6GyD >> Ep45OS93YM7weO0PtuF2dRuKPx/yvGaAgTq0OtXBVii84PI6++ep9eXPzvS/eWEpJToYxr395CMP >> t3aYYX5Frlqx9YiMWeUPc8YbvB9M31kwe1z2FbsKD89RkQ6/QqPfrCYuBwIDAQAB >> >> PrivateKey Base64: >> MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJx5AYmcTmkHIH3qUFmLw7pmPoTS >> pAS/1RnobIMSnjk5L3dgzvB47Q+24XZ1G4o/H/K8ZoCBOrQ61cFWKLzg8jr756n15c/O9L95YSkl >> OhjGvf3kIw+3dphhfkWuWrH1iIxZ5Q9zxhu8H0zfWTB7XPYVuwoPz1GRDr9Co9+sJi4HAgMBAAEC >> gYB0B69CMixa6bQIazbGEERF9wepSuHhu7b0jUvaLnYyDNvL9HfADowMORsb0l9ntsOkJl0EMdAs >> Ueysf42Z8lzsgp4VbTUsbwmX7lsS9fPY1fTVLDLZ8koOco+h+U/aXF10vuSnbJJqDbEDVqOWeGOz >> vcIkP+5KZ1agZvcLj/f9EQJBANh2Hygv3UcUTRUcOvkVvCXdl4pg3DvjPpG6T1be2ZZqpclDpqJn >> 4q7bC7lk6JVSXuCvuu5tZYGext1B4N0btOMCQQC5DcWIHFJm4+W5Hb4CeGCqHixr5oQSlxZGvdE7 >> JPjPFo/oy0PVA6Aj6YHurjmc2de1NUWIQgpJ0bgfIrTS4M+NAkAeozlturibIuh2IHTIZKcoxOB6 >> GZOSdmuYvMIWDZzGiXnFruma+xE+popWR04UNIBxVO4kaR+A5TRIhNaK9Sz5AkBcbquO7A6gxA63 >> 40pIc5ZdAstPbgnkO0FuPlvnPfVlgzCIqBcOrEvuBDHZZX7zgMBFDAHaKJp4+t8L9kr51j71AkEA >> lPVyDQfgzQpFDjdcnJe+rgIi0Q9hrcJmI2N3hP2vhX1Kdh+JzAeAdbYppPCVqO/Ovv+akES8hu8s >> uKiWr7FfxA== >> >> Thanks! >> >