2

この例では、コードの一部が欠けているのではないかと思います。このクラスの certHeader、certFooter でコンパイル時エラーが発生しています。役立つ証明書パーサーのより良い例。この例を使用して証明書を解析しています。

try 
{ 
    String abc = "-----BEGIN CERTIFICATE-----\n" + "ALneIwerZ5Nu+z1Yjvdco9sOHfkhYW4nL+FIlGDGIS +YsyevB8YN2hBnog7gtQ6PB+sVF6o/1UdU\n" + // lines deleted for brevity "rchFUEChHZ5G7AAk02K7/iyqITc/IPNHHpilTg/NB6QhF9s=\n" + "-----END CERTIFICATE-----";

int headerIndex = abc.indexOf(certHeader); 
    if (headerIndex == -1) 
    {
        throw new CertificateParsingException("cannot find BEGIN CERTIFICATE");
        }
    int startIndex = headerIndex + certHeader.length();

int endIndex = abc.indexOf(certFooter);
if (endIndex == -1) 
{
    throw new CertificateParsingException("cannot find END CERTIFICATE"); }

String cert = abc.substring(startIndex, endIndex);
byte[] certBytes = cert.getBytes();

InputStream in = new Base64InputStream(new ByteArrayInputStream(certBytes));

CertificateFactory certFact = CertificateFactory.getInstance ("X.509");
Certificate certGen = certFact.generateCertificate(in);
X509Certificate x509 = (X509Certificate)
certGen; 
}
catch (Exception e) 
{ 
    Log.e("testapp", "exception: " + e.getMessage());
    } 
4

1 に答える 1

0

certHeadercertFooterint 変数であると想定されています。あなたが私たちに示したものからすると、どこにも宣言していないようです。

String.indexOfドキュメントから:

指定された文字が最初に出現する、この文字列内のインデックスを返します。値 ch を持つ文字がこの String オブジェクトによって表される文字シーケンスに出現する場合、そのような最初の出現のインデックス (Unicode コード単位) が返されます。0 から 0xFFFF (両端を含む) の範囲の ch の値の場合、これは次のような最小値 k です。

this.charAt(k) == ch
于 2012-02-27T18:17:13.437 に答える