श्रेणियाँ, पैकेज और रिपॉज़िटरी खोजें

पैकेज विवरणv2.1.0

rsa_pkcs

गोपनीयता-सुधारित ईमेल (PEM) पार्सर, RSA, PKCS#1, PKCS#8, X.509

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
1.3 लाख
लाइक
5
Pub अंक
140

पैकेज इंस्टॉल करें

flutter pub add rsa_pkcs

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

PEM, RSA, PKCS#1, PKCS#8 और X.509 सहित क्रिप्टोग्राफिक फॉर्मेट के विश्लेषण और प्रबंधन के लिए एक Dart पैकेज। यह विभिन्न प्लेटफॉर्मों पर सुरक्षित की प्रबंधन और डिजिटल हस्ताक्षर संचालन की अनुमति देता है। लाइब्रेरी मानक फॉर्मेट में सुरक्षित निजी कुंजियों, सार्वजनिक कुंजियों और प्रमाणपत्रों को पढ़ने और लिखने का समर्थन करती है, जिससे यह बलवान एन्क्रिप्शन और प्रमाणीकरण की आवश्यकता वाले एप्लिकेशन के लिए उपयुक्त होता है। क्रॉस-प्लेटफॉर्म संगतता के लिए बनाया गया, यह Android, iOS, Web, macOS, Windows और Linux पर बिना किसी समस्या के काम करता है।

उपयोग

  • सुरक्षित की भंडारण
  • डिजिटल हस्ताक्षर वेरिफिकेशन
  • TLS/SSL सर्टिफिकेट हैंडलिंग
  • प्रमाणीकरण टोकन उत्पादन
  • एन्क्रिप्टेड डेटा एक्सचेंज
  • सार्वजनिक कुंजी बुनियादी ढांचे का एकीकरण

मुख्य विशेषताएँ

  • PEM प्रारूप विश्लेषण
  • PKCS#1 और PKCS#8 मानकों का समर्थन
  • X.509 सर्टिफिकेट समर्थन
  • प्लेटफॉर्म के अनुकूलता
  • RSA की संचालन
  • सुरक्षित की संकोडिंग/डीकोडिंग

इनके लिए उपयुक्त

  • एन्क्रिप्शन की आवश्यकता वाले मोबाइल और वेब ऐप्स
  • सुरक्षा की आवश्यकता वाली बैकएंड सेवाएँ
  • JWT या OAuth का उपयोग करने वाले अनुप्रयोग
  • सुरक्षित संचार का अनुमोदन करने वाले प्रणाली
  • डिजिटल सर्टिफिकेट के साथ काम कर रहे विकासकर्मी

विचार योग्य बातें

  • निजी कुंजियों के साथ सावधानीपूर्वक निपटना आवश्यक है
  • उच्च प्रदर्शन एन्क्रिप्शन कार्यभार के लिए नहीं बनाया गया है
  • बाहरी क्रिप्टो लाइब्रेरी पर निर्भर करता है
  • RSA और संबंधित मानकों तक सीमित
  • सही सुरक्षा अभ्यास के साथ सबसे अच्छा उपयोग किया जाता है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

Build Status

rsa_pkcs

Privacy-Enhanced Mail (PEM) parser, RSA, PKCS#1, PKCS#8, X.509

openssl genrsa -out rsa_private_key.pem

openssl rsa -in rsa_private_key.pem -text -noout -out rsa_private_key.txt

openssl pkcs8 -in rsa_private_key.pem -topk8 -v2 aes-256-cbc -out rsa_enc_private_key.pem

openssl pkcs8 -in rsa_private_key.pem -topk8 -v2 aes-256-cbc -v2prf hmacWithSHA256 -out rsa_enc_private_key.pem

openssl pkcs8 -in rsa_private_key.pem -nocrypt -topk8 -out rsa_pkcs8_private_key.pem
library rsa_pkcs_test;

import 'dart:io';
import 'package:test/test.dart';
import 'package:rsa_pkcs/rsa_pkcs.dart';

/// Test suite
void main() {
  test('X509 certificate', () {
    final certificateFile = File('test/resource/certificate.pem');
    final pem = certificateFile.readAsStringSync();

    final parser = RSAPKCSParser();
    final pair = parser.parsePEM(pem);

    expect(pair.private, isNull);
    expect(pair.public, isNotNull);

    expect(
        pair.public.modulus,
        BigInt.parse(
          '28033090497217768360343969660651078939521584065407386701840944857554190333345377486890608592313957403519912593868573272324833566960046565212209064828701606844042844758296252915683436083950709369588282830401703789082050482708460081183032757865928569658700963214439372520258229921591300947157909982421739994731742762665888890674063869593136209633509251161824923657193583205462354862058115540928040675840828039354822562384195703281964881672495986693976525885611588824710685812476559097665742184509878129643078068928823514354625680850083823859349966847983641526471178472606740080720731992805405488827115995037727686469357',
        ));
    expect(pair.public.publicExponent, equals(65537));
  });

  test('rsa private key PKCS#1', () {
    //openssl genrsa -out rsa_private_key.pem
    //
    final File rsaPrivateKeyFile = File('test/resource/rsa_private_key.pem');
    final String pem = rsaPrivateKeyFile.readAsStringSync();
    final RSAPKCSParser parser = RSAPKCSParser();
    final RSAKeyPair pair = parser.parsePEM(pem);
    final RSAPrivateKey privateKey = pair.private;

    expect(pair.public, equals(null));
    expect(privateKey != null, equals(true));
    expect(privateKey.version, equals(0));
    final BigInt expectedModulus = BigInt.parse(
      '00d83c3cacb3b767a1020f947ca2012010ba494d86bda1efd437357b91d5c1e61b12384cd3c01f628312a5ef15cf003f62c4f6b835bbb3ea99409f87e583fa6991',
      radix: 16,
    );
    expect(privateKey.modulus, expectedModulus);
    expect(privateKey.publicExponent, equals(65537));

    final BigInt expectedPrivateComponent = BigInt.parse(
        '00a0c22fcda992b9cd5eeddc53c85193d83bd6917791f6198a293d6ecfde1e5885fbc0a766aaca385dd8b3b16a58201baec3900b5c1636321a0167e956d5fbe001',
        radix: 16);
    expect(privateKey.privateExponent, expectedPrivateComponent);
    expect(
        privateKey.prime1,
        BigInt.parse(
            '00f3103a1bb14f88f096983ecd86cb51f9e0e9325030039be4fbb4176de1b73f91',
            radix: 16));
    expect(
        privateKey.prime2,
        BigInt.parse(
            '00e3be793b593e4ed5bce5db1ff563468eeb5cc715b12badf223d1970cd88f8a01',
            radix: 16));
    expect(
        privateKey.exponent1,
        BigInt.parse(
            '7e4e8863ab98310914b8b8aa04c9d3278e809fec9b86c49411585c74753ecc81',
            radix: 16));
    expect(
        privateKey.exponent2,
        BigInt.parse(
            '687f8272f7ecfe11569e855ff1a17ec39f3d2fe0452e0c9f794df7281eca2601',
            radix: 16));
    expect(
        privateKey.coefficient,
        BigInt.parse(
            '0092e895c1a9b7b705fb694bba2d52cb9901d4628db794eb43861b086c557d2913',
            radix: 16));
  });

  test('rsa public key PKCS#8', () {
    //openssl genrsa -out rsa_private_key.pem
    //openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
    final File rsaPrivateKeyFile = File('test/resource/rsa_public_key.pem');
    final String pem = rsaPrivateKeyFile.readAsStringSync();
    final RSAPKCSParser parser = RSAPKCSParser();
    final RSAKeyPair pair = parser.parsePEM(pem);
    final RSAPrivateKey privateKey = pair.private;
    final RSAPublicKey publicKey = pair.public;

    expect(privateKey, equals(null));
    expect(publicKey != null, equals(true));

    expect(
        publicKey.modulus,
        BigInt.parse(
            '00d83c3cacb3b767a1020f947ca2012010ba494d86bda1efd437357b91d5c1e61b12384cd3c01f628312a5ef15cf003f62c4f6b835bbb3ea99409f87e583fa6991',
            radix: 16));
    expect(publicKey.publicExponent, equals(65537));
  });

  test('rsa private key PKCS#8', () {
    //openssl genrsa -out rsa_private_key.pem
    //openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
    final File rsaPrivateKeyFile =
        File('test/resource/rsa_pkcs8_private_key.pem');
    final String pem = rsaPrivateKeyFile.readAsStringSync();
    final RSAPKCSParser parser = RSAPKCSParser();
    final RSAKeyPair pair = parser.parsePEM(pem);
    final RSAPrivateKey privateKey = pair.private;
    final RSAPublicKey publicKey = pair.public;

    expect(privateKey != null, equals(true));
    expect(publicKey, equals(null));

    expect(
        privateKey.modulus,
        BigInt.parse(
            'a2d3fcf35dc37d26edaa77de11380ef3152939b15e8967c3a643ee83da33d9869a2d1d2663306e14629c999ad13545e6e62b0f12bad737edeb1bf26f400d850c3f36adc5fb84ad8ad6459ec51360f2c1d30068fb1e1df44698cf8be30097d8d4add4acb8591093546ac41421b41348b7d5bbe447fe235366995a974166986895',
            radix: 16));
    expect(
        privateKey.privateExponent,
        BigInt.parse(
            '8db5ab66eecaad484cfdd876b74baf8f15729c98666b75984c42c0f995d51c52ce29c73dda8392ba411c837ebee6fb603a1f6d6de2985e3fbd27c475d82c2c0698aa9b66da964072c1f5d488a3f61bb201429cecd2bfd9449f965d88b4d5ce8ed76934e1a0644cc5fd195adaadfe0c3090d40b4f6cc0bdce4badc91369bc58bd',
            radix: 16));
  });
}

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 1 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।

रैंकिंग