Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
20 января 2011, 10:47:03 PM   # 1
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Java / BouncyCastle - Как создать открытый ключ с координатами х и у?

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Из вики (https://en.bitcoin.it/wiki/Protocol_specification#Signatures):
котировка
Открытые ключи (в сценариях) представлены как 04 <Икс> где х и у 32 байтовые строки, представляющие координаты точки на кривой.
Я использую версию Java библиотеки криптографической BouncyCastle, а также между криптографическими классами Java и криптографическими классами BouncyCastle, я не могу понять, как я могу создать открытый ключ объект с координатами х и у.

Кто-нибудь есть какие-либо идеи, как я бы идти об этом?

Я правильно в необходимости использовать эти координаты, чтобы создать публичный объект ключ, используемый для проверки подписей, не так ли?
сейчас офлайн пожаловаться на   Ответить с цитированием Мультицитирование сообщение от Быстрый ответ на сообщение


Как заработать Биткоины?
Без вложений. Не майнинг.


21 января 2011, 1:47:30 AM   # 2
 
 
Сообщений: 75
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Java / BouncyCastle - Как создать открытый ключ с координатами х и у?

Получил 1806 Биткоинов
Реальная история.





общественности статической ECPublicKey decodeKey (байт [] кодируются) бросает InvalidKeySpecException, NoSuchAlgorithmException, NoSuchProviderException {
    ECNamedCurveParameterSpec PARAMS = ECNamedCurveTable.getParameterSpec ("secp256k1");
    KeyFactory факт = KeyFactory.getInstance ("ECDSA", "До нашей эры");
    ECCurve кривой = params.getCurve ();
    java.security.spec.EllipticCurve ellipticCurve = EC5Util.convertCurve (кривая, params.getSeed ());
    java.security.spec.ECPoint точка = ECPointUtil.decodePoint (ellipticCurve, кодируются);
    java.security.spec.ECParameterSpec params2 = EC5Util.convertSpec (ellipticCurve, PARAMS);
    java.security.spec.ECPublicKeySpec KeySpec = новый java.security.spec.ECPublicKeySpec (точка, params2);
    возврата (ECPublicKey) fact.generatePublic (KeySpec);
}


Я реализация андроид клиент в данный момент и был бы рад общаться повторно: любой вопрос у вас есть.

С уважением, и т.д.
dirtyfilthy сейчас офлайн Пожаловаться на dirtyfilthy   Ответить с цитированием Мультицитирование сообщения от dirtyfilthy Быстрый ответ на сообщение dirtyfilthy

21 января 2011, 2:07:11 AM   # 3
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Java / BouncyCastle - Как создать открытый ключ с координатами х и у?

общественности статической ECPublicKey decodeKey (байт [] кодируются) бросает InvalidKeySpecException, NoSuchAlgorithmException, NoSuchProviderException {
    ECNamedCurveParameterSpec PARAMS = ECNamedCurveTable.getParameterSpec ("secp256k1");
    KeyFactory факт = KeyFactory.getInstance ("ECDSA", "До нашей эры");
    ECCurve кривой = params.getCurve ();
    java.security.spec.EllipticCurve ellipticCurve = EC5Util.convertCurve (кривая, params.getSeed ());
    java.security.spec.ECPoint точка = ECPointUtil.decodePoint (ellipticCurve, кодируются);
    java.security.spec.ECParameterSpec params2 = EC5Util.convertSpec (ellipticCurve, PARAMS);
    java.security.spec.ECPublicKeySpec KeySpec = новый java.security.spec.ECPublicKeySpec (точка, params2);
    возврата (ECPublicKey) fact.generatePublic (KeySpec);
}


Я реализация андроид клиент в данный момент и был бы рад общаться повторно: любой вопрос у вас есть.

С уважением, и т.д.

Работает отлично! Большое спасибо!
сейчас офлайн пожаловаться на   Ответить с цитированием Мультицитирование сообщение от Быстрый ответ на сообщение

6 марта 2011, 10:21:55 AM   # 4
 
 
Сообщения: 1
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Java / BouncyCastle - Как создать открытый ключ с координатами х и у?

Привет,

Таким образом, вы сказали, что вы не возражаете, отвечая на любой вопрос относительно this-

Так что я работаю над проектом, и мне нужно, чтобы проверить подпись, данное мне.

Когда я как генерировать & проверить подпись, все работает отлично, но когда я пытаюсь проверить подпись другого парня она расправляется говоря: "ошибка декодирования подписи байта.", В частности, я узнал, что это дробит здесь:
ASN1InputStream Ain = новые ASN1InputStream (signature.getBytes ());
пытаться {
       ASN1Sequence s = (ASN1Sequence) aIn.readObject (); / * дробление на этой линии точно ... * /
} Поймать (IOException е) {

}

Я прикрепил функции, связанные ...

частный PublicKey generatePublicKey (Point pPublicKey, String sCurve)
         бросает IOException, NoSuchAlgorithmException,
         NoSuchProviderException, InvalidKeySpecException,
         InvalidAlgorithmParameterException {
       X9ECParameters ecParams = NISTNamedCurves.getByName (sCurve);
       ECPoint pPublicPoint = ecParams.getCurve (). CreatePoint (pPublicKey.x,
       pPublicKey.y, ложь);
       ECParameterSpec спецификация = новый ECParameterSpec (ecParams.getCurve (),
       ecParams.getG (), ecParams.getN ());
       ECPublicKeySpec publicSpec = новый ECPublicKeySpec (pPublicPoint, спецификации);
       KeyFactory keyfac = KeyFactory.getInstance ("ECDSA", "LOCAL_BC");
       вернуть keyfac.generatePublic (publicSpec);
   }

   общественного ECDSAVerifier (Point PKEY, String Шаш, String sCurve)
         бросает InvalidKeyException, NoSuchAlgorithmException,
         NoSuchProviderException, InvalidKeySpecException, IOException,
         InvalidAlgorithmParameterException {
      this.key = generatePublicKey (PKey, sCurve);
      this.hashName = Shash;
      ECDSAGenerateVerifier ();
   }

   частная пустота ECDSAGenerateVerifier () бросает NoSuchAlgorithmException,
         NoSuchProviderException, InvalidKeyException {
      this.verifier = Signature.getInstance (this.hashName, "LOCAL_BC");
      this.verifier.initVerify (this.key);
   }

   общественные Логические проверить (байты [] сообщение, байты [] подпись)
         бросает SignatureException, InvalidKeyException {
      this.verifier.update (сообщение);
      вернуть this.verifier.verify (подпись); / * Код дробит здесь ... * /
   }
whateverlie сейчас офлайн Пожаловаться на whateverlie   Ответить с цитированием Мультицитирование сообщения от whateverlie Быстрый ответ на сообщение whateverlie

6 марта 2011, 10:00:04 PM   # 5
 
 
Сообщений: 75
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Java / BouncyCastle - Как создать открытый ключ с координатами х и у?

Привет,

Таким образом, вы сказали, что вы не возражаете, отвечая на любой вопрос относительно this-

Так что я работаю над проектом, и мне нужно, чтобы проверить подпись, данное мне.

Когда я как генерировать & проверить подпись, все работает отлично, но когда я пытаюсь проверить подпись другого парня она расправляется говоря: "ошибка декодирования подписи байта.", В частности, я узнал, что это дробит здесь:


Является ли это Bitcoin подпись? Поскольку Bitcoin подпись имеет один байт прикрепил к концу, что вам нужно удалить (в HashType) перед проверкой.
dirtyfilthy сейчас офлайн Пожаловаться на dirtyfilthy   Ответить с цитированием Мультицитирование сообщения от dirtyfilthy Быстрый ответ на сообщение dirtyfilthy

30 декабря 2014, 8:17:37 PM   # 6
 
 
Сообщения: 1
Цитировать по имени
цитировать ответ
по умолчанию Re: [решено] Java / BouncyCastle - Как создать открытый ключ с координатами х и у?

общественности статической ECPublicKey decodeKey (байт [] кодируются) бросает InvalidKeySpecException, NoSuchAlgorithmException, NoSuchProviderException {
    ECNamedCurveParameterSpec PARAMS = ECNamedCurveTable.getParameterSpec ("secp256k1");
    KeyFactory факт = KeyFactory.getInstance ("ECDSA", "До нашей эры");
    ECCurve кривой = params.getCurve ();
    java.security.spec.EllipticCurve ellipticCurve = EC5Util.convertCurve (кривая, params.getSeed ());
    java.security.spec.ECPoint точка = ECPointUtil.decodePoint (ellipticCurve, кодируются);
    java.security.spec.ECParameterSpec params2 = EC5Util.convertSpec (ellipticCurve, PARAMS);
    java.security.spec.ECPublicKeySpec KeySpec = новый java.security.spec.ECPublicKeySpec (точка, params2);
    возврата (ECPublicKey) fact.generatePublic (KeySpec);
}


Я реализация андроид клиент в данный момент и был бы рад общаться повторно: любой вопрос у вас есть.

С уважением, и т.д.

Спасибо #dirtyfilthy. Я находил это на некоторое время. Ваше решение работает. Этот кусок кода помогает мне инъекционного сгенерированного открытого ключа из HSM в ОКО. Как-то образец на сайте boucny замок глючит. Я надеюсь, что это может помочь другим госзакупках, кто нуждается в импортирование открытого ключа в ОКО.

ура
clever662002 сейчас офлайн Пожаловаться на clever662002   Ответить с цитированием Мультицитирование сообщения от clever662002 Быстрый ответ на сообщение clever662002



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW