## {t,n}-threshold ECDSA (elliptic curve digital signature algorithm)

In a nutshell what is {t,n}-threshold ECDSA (elliptic curve digital signature algorithm) and why is it fast and safe?

## Signature on VERY active forum for 7 month for \$1

Example of one of my topics and the number of my posts and Replies and signature here Profile Stats: I currently have over 68000 posts. I make over 1000 posts per week. senior members Join Date: May 2015 Site Stats: Almost 8,000 members and 124000 posts Over 50 new members and 1,000 posts per day. One of the biggest and active forums in the world. 7 months in one dollar only

by: hanibder
Created: —
Viewed: 115

## Convert ECDSA signature from plain to DER format

I am doing active authentication of ePassports according to ICAO 9303 standard (part11).

1. Send a challenge to the chip, the chip signs it using its private key (stored inside the chip, not readable)
2. The chip sends the siganture .
3. You then verify the signature using the public key (can be read from the chip)

There’s two possible signature Algorithms: RSA (RSA-SHA1, RSA-PSS, RSA-SHA224, RSA-SHA256, RSA-SHA512) and ECDSA.

In section 6.1.2.3 of ICAO9303 part 11 it reads about ECDSA: ” For ECDSA, the plain signature format according to TR-03111 SHALL be used. Only prime curves with uncompressed points SHALL be used. A hash algorithm, whose output length is of the same length or shorter than the length of the ECDSA key in use, SHALL be used.”

What I don’t quite get is how do I use the ECDSA signature in this plain format with OpenSSL? In the following code `EVP_DigestVerifyFinal` returns -1. How can I bring the signature `oSIG` from plain format to DER format?

``bool doAA(std::vector<unsigned char> oRND, std::vector<unsigned char> oSIG, std::vector<unsigned char> oPKEY) {       EVP_PKEY* m_pPubkey;     BIO* keyBio = BIO_new_mem_buf(&oPKEY[0], (int)oPKEY.size());     m_pPubkey = d2i_PUBKEY_bio(keyBio, NULL);            BIO_free(keyBio);      if (NULL == m_pPubkey)     {         std::cout << "Error Public key is NULL" << std::endl;         return false;     }      // check if ECDSA signature and then verify     int nRes = 0;     int type = EVP_PKEY_base_id(m_pPubkey);     if (type == EVP_PKEY_EC)     {         EVP_MD_CTX* ctx = EVP_MD_CTX_create();          nRes = EVP_DigestVerifyInit(ctx, NULL, EVP_sha1(), NULL, m_pPubkey);         if (1 != nRes)         {             EVP_MD_CTX_cleanup(ctx);             std::cout << "Error EVP_DigestVerifyInit" << std::endl;             return false;         }          nRes = EVP_DigestVerifyUpdate(ctx, &oRND[0], oRND.size());         if (1 != nRes)         {             EVP_MD_CTX_cleanup(ctx);             std::cout << "Error EVP_DigestVerifyUpdate" << std::endl;             return false;         }          nRes = EVP_DigestVerifyFinal(ctx, &oSIG[0], oSIG.size());         EVP_MD_CTX_cleanup(ctx);         if (nRes < 0)         {             std::cout << "Error EVP_DigestVerifyFinal failed" << std::endl;             return false;         }         else if (nRes == 0)         {             std::cout << "Error EVP_DigestVerifyFinal: Signature could not be verified" << std::endl;             return false;         }        }     else     {         std::cout << "Not a ECDSA Signature" << std::endl;         return false;     }      return nRes == 1; } ``

EDIT: This is the error I get: `error:0D07207B:lib(13):func(114):reason(123)`

## Office365 and Outlook Email Signature Formatting

Hoping this is the right venue to ask this. If not, please feel free to point me in the right direction. That said…

I’m trying to create a nicely formatted signature block for a client who uses Office365 for their company email. I’ve formatted the block using basic html and then viewed it in a web browser. (Nothing fancy, just some text and a company logo. No CSS styles and local style attributes on all DIVs) I then select the block in the browser, copy it to the clip board and then paste it into Outlook.

It appears to strip out any padding I had on the DIVs and also seems to be ignoring or stripping out the formatting on hyperlinks and email addresses. Also, all P tags appear to not have any spacing between them. Had to resort to BR tags to get space between them.

Anyone have some direct experience with this or have knowledge of documentation on what it’s doing to my code?

## percentage of X.509 certs using rsaEncryption as signature algorithm

Quoting 2017_TLS_Telemetry_Report.pdf:

Not surprisingly, 2048-bit keys now protect 90% of the world’s TLS hosts. The use of 4096-bit keys have quadrupled, as a share of hosts, but we expect it to start shrinking again as Elliptic Curve Digital Signature Algorithm (ECDSA) gains favor.

That report was issued in 2017 however and I can find no newer report.

My question is… is there a more recent report that has more up-to-date stats?

## Adding social media icons to email signature apple mail with url, not by attachment

However, even if I drag-drop from the browser, It is inserted as an attachment, which is personally super annoying.

Is there a way to insert it to be loaded directly from the source from the web? So, as if tag in website.

I tried to copy+paste it from web format. It worked for email content but didn’t work for signature.

Since it was possible for content, it doesn’t seem impossible for mail but can’t find how to do it.

## Add Digital signature in Customer Document Template

I added 3-4 types of document template under a document library in SharePoint online.

Now I have a requirement that Whenever any user create a Online Document using any of these template, copy of digital signature, of the respective user got added in the footer or in last page of that document automatically.

Any suggestion would be appreciated…

## Cannot invoke an expression whose type lacks a call signature. Type ‘JQuery’

Использую TypeScript с JQuery на клиенте. Пытаюсь обратиться к свойству элемента посредством JQuery:

``\$  ('.main-searcher-form').find('.input-holder.date').first().find('input.date').first()[0]._flatpickr.open() ``

Разумеется, что на типе данных `HTMLElement` нет свойства `_flatpickr`, поэтому я написал такой интерфейс:

``interface ElementWithFP extends Element {     _flatpickr? : flatpickr.Instance } ``

Но когда я пытаюсь его скастовать для элемента следующим образом:

``(<ElementWithFP>(\$  ('.main-searcher-form').find('.input-holder.date').first().find('input.date').first()[0])._flatpickr.open() ``

То у меня подчёркивается текущая и предыдущая строки и выводится ошибка:

Cannot invoke an expression whose type lacks a call signature. Type ‘JQuery’ has no compatible call signatures.ts(2349)

В чём проблема и почему у меня не получается скастовать интерфейс на селектор?

## Getting signature error while installing a different version of the app

Recently I install a custom ROM named eelo https://e.foundation/. It comes with pre-installed Telegram app. After much research I was able to uninstall if from the system with the command `adb shell pm uninstall --user 0 org.telegram.messenger`. But when I tried to install the new apk with `adb install telegram.apk` I got the following error

``adb: failed to install telegram.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package org.telegram.messenger signatures do not match the previously installed version; ignoring!] ``

I also tried uninstalling with this `adb uninstall org.telegram.messenger` but it gave out `Failure [DELETE_FAILED_INTERNAL_ERROR]`. With further research I found out that I can install the new `.apk` with different if I comment the section in `/data/system/packages.xml` referring to `telegram`. But after making the change when I reboot it get back to the unedited version.

Currently using Android Nougat 7.1.

Can anyone tell me the reason as to why this happens and how I can stop it from happening? And how would I be able to install a different version of the app?