Re: PKCS11 - Key not found

Aleksey Sanin <[email protected]> Thu, 14 Sep 2017 12:11:39 -0700
Newsgroups gmane.text.xml.xmlsec
Message-ID <[email protected]>
SnVzdCBhIGhlYWRzIHVwIHRoYXQgSSd2ZSBnb3QgYSByZXBvcnQgdGhhdCB0aGlzIGNoYW5nZQpj
YXVzZSBwcm9ibGVtcyBmb3Igb3RoZXIgdXNlcnMuIEkgd2lsbCBiZSByb2xsaW5nIGl0IGJhY2sK
KGFuZCBJIHN0aWxsIGRvbid0IGhhdmUgYSBnb29kIHdheSB0byBkZXRlcm1pbmUgUlNBIGtleQp0
eXBlKS4KCkFsZWtzZXkKCk9uIDExLzEyLzE2IDg6MTcgQU0sIFBhYmxvIEdhYnJpZWwgR2FsbGFy
ZG8gd3JvdGU6Cj4gQWxla3NleSwKPiAKPiBJdCB3b3JrZWQhIFRoYW5rIHlvdSBzbyBtdWNoIGZv
ciB5b3VyIGhlbHAgYW5kIHRpbWUhCj4gCj4gPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
VVRGLTgiPz4KPiA8IS0tCj4gWE1MIFNlY3VyaXR5IExpYnJhcnkgZXhhbXBsZTogT3JpZ2luYWwg
WE1MIGRvYyBmaWxlIGZvciBzaWduMyBleGFtcGxlLgo+IC0tPgo+IDxFbnZlbG9wZSB4bWxucz0i
dXJuOmVudmVsb3BlIj4KPiAgIDxEYXRhPgo+ICAgICAgICAgSGVsbG8sIFdvcmxkIQo+ICAgPC9E
YXRhPgo+IDxTaWduYXR1cmUgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNp
ZyMiPgo+IDxTaWduZWRJbmZvPgo+IDxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0i
aHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+Cj4gPFNpZ25hdHVyZU1l
dGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hh
MSIvPgo+IDxSZWZlcmVuY2U+Cj4gPFRyYW5zZm9ybXM+Cj4gPFRyYW5zZm9ybSBBbGdvcml0aG09
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+
Cj4gPC9UcmFuc2Zvcm1zPgo+IDxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIvPgo+IDxEaWdlc3RWYWx1ZT5Ialk4aWxaQUlFTTJ0
QmJQbjVtWU8xaWVJWDQ9PC9EaWdlc3RWYWx1ZT4KPiA8L1JlZmVyZW5jZT4KPiA8L1NpZ25lZElu
Zm8+Cj4gPFNpZ25hdHVyZVZhbHVlPlBlcDBlOC9wVlpWL2dtRk5PcWdmQ045aHJ5ditrNWdWUC93
eXpPU2E0OXVpOEsvVmZJdTNOa2NtMkZXRHBoQW8KPiBQSkJNT3c4QkVBOWh0bXNncm1tZGhXUElN
NWJzTTFyZm4wNzJGY3pCQ3FiVysvRzZ4MjZjRysrWmtKN0U4akJHCj4gWjMzdkFYTEZMZFlPSnZD
WHRzV3duNEl2QVBvUnlZZFZ5ejFiNkZFQjBLd1VNcjRyeUxXcEVYRytLMGpRcEMzawo+IHVQMm8w
NmZVczVNM0lCVzErUFREcWlONkF5aXdVZzg1bDFVbHFhbXE1UVVLbTdWSk1va0JYTDhldm1MUzE3
MXIKPiAxUGh3V1dIS1A2YVFKYTZ5ZGZ3M3hrWTRSZERTSkV4MEUwbWxrYXB3Q2tkQmZtQjUyT1ky
UWFDQ3JBWk9FZnpnCj4gaFhVaXQ4OXNJUWZBV25BQU9mc0FNQT09PC9TaWduYXR1cmVWYWx1ZT4K
PiA8S2V5SW5mbz4KPiA8WDUwOURhdGE+Cj4gPFg1MDlTdWJqZWN0TmFtZS8+Cj4gPFg1MDlDZXJ0
aWZpY2F0ZS8+Cj4gPC9YNTA5RGF0YT4KPiA8L0tleUluZm8+Cj4gPC9TaWduYXR1cmU+PC9FbnZl
bG9wZT4KPiAKPiBSZWdhcmRzLAo+IAo+IFBhYmxvIEcuIEdhbGxhcmRvCj4gCj4gMjAxNi0xMS0x
MiAzOjQ2IEdNVC0wMjowMCBBbGVrc2V5IFNhbmluIDxhbGVrc2V5QGFsZWtzZXkuY29tPjoKPj4g
Q2FuIHlvdSB0cnkgdGhpcyBwYXRjaCAoaXQgaXMgYWxyZWFkeSBtZXJnZWQgdG8gdGhlIG1hc3Rl
ciBvbiBnaXRodWIgLS0KPj4geW91IHdpbGwgbmVlZCB0byByZWNvbXBpbGUgdGhlIGxpYnJhcnkg
YW5kIGVuc3VyZSB5b3UgYXJlIGxvYWRpbmcKPj4gdGhlIHJlY29tcGlsZWQgbGlicyBpbnN0ZWFk
IG9mIHRoZSBkZWZhdWx0IG9uZXMpOgo+Pgo+PiBodHRwczovL2dpdGh1Yi5jb20vbHNoMTIzL3ht
bHNlYy9wdWxsLzU5Cj4+Cj4+IEkgYmVsaWV2ZSB0aGlzIHNob3VsZCBoZWxwIHdpdGggUlNBLiBJ
IGhhdmUgbm8gaWRlYSB3aGF0IHRvIGRvIHdpdGggRFNBCj4+IHNpbmNlIEkgZG9uJ3Qgc2VlIGFu
eSBpbmRpY2F0aW9uIGluIHRoZSBkZWJ1ZyBwcmludG91dCB0aGF0IHRoaXMga2V5IGlzCj4+IHBy
aXZhdGUuCj4+Cj4+IEFsZWtzZXkKPj4KPj4gT24gMTEvMTEvMTYgMjo0MiBQTSwgUGFibG8gR2Fi
cmllbCBHYWxsYXJkbyB3cm90ZToKPj4+IEFsZWtzZXksCj4+Pgo+Pj4gSGVyZSB5b3UgaGF2ZSB0
aGUgUlNBIGFuZCBEU0Egb2JqZWN0cyBmcm9tIG15IHNtYXJ0IGNhcmQgaW4gZXhlY3V0aW9uIHRp
bWU6Cj4+PiBSU0E6Cj4+PiAkMSA9IHtwYWQgPSAwLCB2ZXJzaW9uID0gMCwgbWV0aCA9IDB4ODE4
NWJiOCwgZW5naW5lID0gMHgwLCBuID0KPj4+IDB4ODE4NjE1OCwgZSA9IDB4ODE4NmEzMCwgZCA9
IDB4MCwgcCA9IDB4MCwgcSA9IDB4MCwgZG1wMSA9IDB4MCwgZG1xMQo+Pj4gPSAweDAsIGlxbXAg
PSAweDAsIGV4X2RhdGEgPSB7c2sgPSAweDgxODVjMTAsIGR1bW15ID0gMH0sIHJlZmVyZW5jZXMg
PQo+Pj4gMSwgZmxhZ3MgPSA2LAo+Pj4gICBfbWV0aG9kX21vZF9uID0gMHgwLCBfbWV0aG9kX21v
ZF9wID0gMHgwLCBfbWV0aG9kX21vZF9xID0gMHgwLAo+Pj4gYmlnbnVtX2RhdGEgPSAweDAsIGJs
aW5kaW5nID0gMHgwLCBtdF9ibGluZGluZyA9IDB4MH0KPj4+Cj4+PiBSU0EtPm1ldGg6Cj4+PiAo
Z2RiKSBwICpwS2V5LnBrZXktPnJzYS0+bWV0aAo+Pj4gJDMgPSB7bmFtZSA9IDB4ODE4NWJmOCAi
bGlicDExIFJTQSBtZXRob2QiLCByc2FfcHViX2VuYyA9IDB4YjdkNjU1NzAsCj4+PiByc2FfcHVi
X2RlYyA9IDB4YjdkNjUwZDAsIHJzYV9wcml2X2VuYyA9IDB4YjdjYmJiMjAKPj4+IDxwa2NzMTFf
cnNhX3ByaXZfZW5jX21ldGhvZD4sIHJzYV9wcml2X2RlYyA9IDB4YjdjYmJiYjAKPj4+IDxwa2Nz
MTFfcnNhX3ByaXZfZGVjX21ldGhvZD4sIHJzYV9tb2RfZXhwID0gMHhiN2Q2NDc5MCwKPj4+ICAg
Ym5fbW9kX2V4cCA9IDB4YjdkM2RiZjAgPEJOX21vZF9leHBfbW9udD4sIGluaXQgPSAweGI3ZDY0
NzIwLCBmaW5pc2gKPj4+ID0gMHhiN2NiYjVjMCA8cGtjczExX3JzYV9mcmVlX21ldGhvZD4sIGZs
YWdzID0gMCwgYXBwX2RhdGEgPSAweDAsCj4+PiByc2Ffc2lnbiA9IDB4MCwgcnNhX3ZlcmlmeSA9
IDB4MCwgcnNhX2tleWdlbiA9IDB4MH0KPj4+Cj4+PiBSU0FfdGVzdF9mbGFncyhyc2EsIFJTQV9G
TEFHX0VYVF9QS0VZKSA9IDAKPj4+Cj4+PiBEU0E6Cj4+PiAoZ2RiKSBwICpwS2V5LnBrZXktPmRz
YQo+Pj4gJDIgPSB7cGFkID0gMCwgdmVyc2lvbiA9IDAsIHdyaXRlX3BhcmFtcyA9IDEzNTgxNDA3
MiwgcCA9IDB4MCwgcSA9Cj4+PiAweDgxODYxNTgsIGcgPSAweDgxODZhMzAsIHB1Yl9rZXkgPSAw
eDAsIHByaXZfa2V5ID0gMHgwLCBraW52ID0gMHgwLCByCj4+PiA9IDB4MCwgZmxhZ3MgPSAwLCBt
ZXRob2RfbW9udF9wID0gMHgwLCByZWZlcmVuY2VzID0gMTM1ODE0MTYwLCBleF9kYXRhCj4+PiA9
IHtzayA9IDB4MCwgZHVtbXkgPSAxfSwKPj4+ICAgbWV0aCA9IDB4NiwgZW5naW5lID0gMHgwfQo+
Pj4KPj4+Cj4+PiBJJ3ZlIHRyaWVkIHRvIGRlYnVnIHRoZSBzb3VyY2VzIG9uIEdpdEh1YiBidXQg
SSd2ZSBnb3QgdGhpcyBlcnJvcjoKPj4+IGZ1bmM9eG1sU2VjQ2hlY2tWZXJzaW9uRXh0OmZpbGU9
eG1sc2VjLmM6bGluZT0xNzA6b2JqPXVua25vd246c3Viaj11bmtub3duOmVycm9yPTE6eG1sc2Vj
Cj4+PiBsaWJyYXJ5IGZ1bmN0aW9uIGZhaWxlZDptb2RlPWFiaSBjb21wYXRpYmxlO2V4cGVjdGVk
IG1pbm9yCj4+PiB2ZXJzaW9uPTI7cmVhbCBtaW5vciB2ZXJzaW9uPTI7ZXhwZWN0ZWQgc3VibWlu
b3IgdmVyc2lvbj0yMDtyZWFsCj4+Cj4+Cj4+PiBzdWJtaW5vciB2ZXJzaW9uPTIzCj4+PiBFcnJv
cjogbG9hZGVkIHhtbHNlYyBsaWJyYXJ5IHZlcnNpb24gaXMgbm90IGNvbXBhdGlibGUuCj4+Pgo+
Pj4gQnV0IHdpdGggdGhlIGluZm9ybWF0aW9uIGFib3ZlIFJTQSBpcyByZWNvZ25pemVkIGFzIGEg
cHVibGljIGtleQo+Pj4gYmVjYXVzZSByc2EtPmQgPSBOVUxMIGFuZCBSU0FfdGVzdF9mbGFncyhy
c2EsIFJTQV9GTEFHX0VYVF9QS0VZKSA9IDAuCj4+Pgo+Pj4gVGhhbmsgeW91IGZvciB5b3VyIGlu
dGVyZXN0IGluIG15IGNhc2UuIFdoYXQgY2FuIEkgZG8gdG8gZml4IHRoaXM/Cj4+PiBTaG91bGQg
SSBjcmVhdGUgMiBmdW5jdGlvbnMgaW4geG1sc2VjIGZvciBzZXR0aW5nIEVWUF9QS0VZIChvbmUg
Zm9yCj4+PiBwdWJsaWMga2V5IGFuZCBvbmUgZm9yIHRoZSBwcml2YXRlIGtleSk/Cj4+Pgo+Pj4g
UmVnYXJkcywKPj4+Cj4+PiBQYWJsbyBHLiBHYWxsYXJkbwo+Pj4KPj4+IDIwMTYtMTEtMTEgMToz
OSBHTVQtMDI6MDAgQWxla3NleSBTYW5pbiA8YWxla3NleUBhbGVrc2V5LmNvbT46Cj4+Pj4gQ2Fu
IHlvdSBjaGVjayB3aGF0J3MgZ29pbmcgb24gaW4gdGhlc2UgdHdvIHBsYWNlcz8KPj4+Pgo+Pj4+
IGh0dHBzOi8vZ2l0aHViLmNvbS9sc2gxMjMveG1sc2VjL2Jsb2IvbWFzdGVyL3NyYy9vcGVuc3Ns
L2V2cC5jI0wxMDEyCj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2xzaDEyMy94bWxzZWMvYmxvYi9t
YXN0ZXIvc3JjL29wZW5zc2wvZXZwLmMjTDE4ODcKPj4+Pgo+Pj4+IFVuZm9ydHVuYXRlbHksIHRo
ZXJlIGlzIG5vIGdvb2Qgd2F5IHRvIGRldGVybWluZSBpZiBhIFBLRVkgaXMgcHVibGljCj4+Pj4g
b3IgcHJpdmF0ZS4gVGh1cyB3ZSB1c2UgYSBoYWNrLiBJIGFtIGN1cmlvdXMgd2hhdCBpcyBnb2lu
ZyBvbiB0aGVyZQo+Pj4+IGluIHlvdXIgY2FzZS4KPj4+Pgo+Pj4+IEFsZWtzZXkKPj4+Pgo+Pj4+
IE9uIDExLzEwLzE2IDU6MzUgUE0sIFBhYmxvIEdhYnJpZWwgR2FsbGFyZG8gd3JvdGU6Cj4+Pj4+
IEhlbGxvIEFsZWtzZXksCj4+Pj4+Cj4+Pj4+IEkndmUgdXNlZCB0aGUgUlNBIGtleSBmcm9tIG15
IHNtYXJ0Y2FyZCBieSBpdCBpcyBzdGlsbCBiZWluZwo+Pj4+PiByZWNvZ25pemVkIGFzIGEgcHVi
bGljIGtleS4gSXMgaXQgYmVjYXVzZSwgYXMgYSBzbWFydCBjYXJkIFJTQSBrZXksIGl0Cj4+Pj4+
IGRvZXNuJ3QgaGF2ZSB0aGUgZCBtZW1iZXIgKGJlY2F1c2UgdGhlIHByaXZhdGUga2V5IG5ldmVy
IGxlYXZlcyB0aGUKPj4+Pj4gc21hcnQgY2FyZCk/Cj4+Pj4+Cj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+
Cj4+Pj4+IFBhYmxvCj4+Pj4+Cj4+Pj4+IDIwMTYtMTEtMDkgODo0MyBHTVQtMDI6MDAgUGFibG8g
Ry4gR2FsbGFyZG8gPHBnZ2xscmRAZ21haWwuY29tPjoKPj4+Pj4+IEhpIEFsZWtzZXksCj4+Pj4+
Pgo+Pj4+Pj4gVGhhbmsgeW91ISBZb3UgYXJlIHJpZ2h0LiB4bWxTZWNLZXlHZXRUeXBlKGtleSkg
cmV0dXJuZWQgMSAocHVibGljIGtleSkuIEknbGwgY2hlY2sgd2h5IGlzIGl0IHJlY29nbml6ZWQg
YXMgYSBwdWJsaWMga2V5LiBBcyB5b3Ugc2FpZCwgSSdtIG5vdCBwYXNzaW5nIHRoZSBjb3JyZWN0
IGtleSBvYmplY3QgKFJTQSksIGp1c3QgYWRvcHRpbmcgRVZQX1BLRVkuCj4+Pj4+Pgo+Pj4+Pj4g
SSdsbCBmaXggdGhhdCBhbmQgdGhlbiBJJ2xsIGNhbWUgd2l0aCB0aGUgcmVzdWx0Lgo+Pj4+Pj4K
Pj4+Pj4+IFRoYW5rIHlvdSEKPj4+Pj4+Cj4+Pj4+PiBQYWJsbwo+Pj4+Pj4KPj4+Pj4+IEVtIDkg
ZGUgbm92ZW1icm8gZGUgMjAxNiAwMDoxNzoyNyBCUlNULCBBbGVrc2V5IFNhbmluIDxhbGVrc2V5
QGFsZWtzZXkuY29tPiBlc2NyZXZldToKPj4+Pj4+PiBBc3N1bWluZyB0aGF0IHRoZSBrZXkgdHlw
ZSBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgc2lnbmF0dXJlIHR5cGUKPj4+Pj4+PiBpbiB0aGUgdGVt
cGxhdGUgKGkuZS4gUlNBIHNpZ25hdHVyZXMgcmVxdWlyZSBSU0Ega2V5cykuLi4KPj4+Pj4+Pgo+
Pj4+Pj4+IENhbiB5b3UgdHJ5IHRvIHByaW50IHRoZSBrZXkgdHlwZSB3aXRoCj4+Pj4+Pj4KPj4+
Pj4+PiB4bWxTZWNLZXlHZXRUeXBlKGtleSkKPj4+Pj4+Pgo+Pj4+Pj4+IEJhc2ljYWxseSwgSSBz
dXNwZWN0IHRoYXQgaXQgZG9lc24ndCByZWNvZ25pemUgdGhlIGtleSBhcyBwcml2YXRlCj4+Pj4+
Pj4gdGh1cyBjYW4ndCBmaW5kIGEgcHJvcGVyIGtleSBmb3IgdGhlIHNpZ25hdHVyZS4KPj4+Pj4+
Pgo+Pj4+Pj4+IEJlc3QsCj4+Pj4+Pj4KPj4+Pj4+PiBBbGVrc2V5Cj4+Pj4+Pj4KPj4+Pj4+PiBP
biAxMS84LzE2IDU6MDUgUE0sIFBhYmxvIEdhYnJpZWwgR2FsbGFyZG8gd3JvdGU6Cj4+Pj4+Pj4+
IEhlbGxvIHRoZXJlIQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJIHdhbnQgdG8gdXNlIHhtbHNlYyB0byBz
aWduIFhNTHMgd2l0aCBhIHNtYXJ0IGNhcmQuIEknbSB1c2luZyBsaWJwMTEKPj4+Pj4+Pj4gYW5k
IHdoZW4gSSBjYWxsIHhtbFNlY0RTaWdDdHhTaWduKCksIGl0IHJldHVybnMgLTEgYW5kIEknbSBn
ZXR0aW5nCj4+Pj4+Pj4+IHRoaXMgZXJyb3I6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4gZnVu
Yz14bWxTZWNEU2lnQ3R4UHJvY2Vzc0tleUluZm9Ob2RlOmZpbGU9eG1sZHNpZy5jOmxpbmU9ODcx
Om9iaj11bmtub3duOnN1Ymo9dW5rbm93bjplcnJvcj00NTprZXkKPj4+Pj4+Pj4gaXMgbm90IGZv
dW5kOgo+Pj4+Pj4+Pgo+Pj4+Pj4+IGZ1bmM9eG1sU2VjRFNpZ0N0eFByb2Nlc3NTaWduYXR1cmVO
b2RlOmZpbGU9eG1sZHNpZy5jOmxpbmU9NTY1Om9iaj11bmtub3duOnN1Ymo9eG1sU2VjRFNpZ0N0
eFByb2Nlc3NLZXlJbmZvTm9kZTplcnJvcj0xOnhtbHNlYwo+Pj4+Pj4+PiBsaWJyYXJ5IGZ1bmN0
aW9uIGZhaWxlZDoKPj4+Pj4+Pj4KPj4+Pj4+PiBmdW5jPXhtbFNlY0RTaWdDdHhTaWduOmZpbGU9
eG1sZHNpZy5jOmxpbmU9MzAzOm9iaj11bmtub3duOnN1Ymo9eG1sU2VjRFNpZ0N0eFNpZ25hdHVy
ZVByb2Nlc3NOb2RlOmVycm9yPTE6eG1sc2VjCj4+Pj4+Pj4+IGxpYnJhcnkgZnVuY3Rpb24gZmFp
bGVkOgo+Pj4+Pj4+PiBFcnJvcjogc2lnbmF0dXJlIGZhaWxlZAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJ
IHVzZSB4bWxTZWNPcGVuU1NMRXZwS2V5QWRvcHQoKSB0byBzZXQgdGhlIEVWUF9QS0VZIGZyb20g
bXkgc21hcnQKPj4+Pj4+Pj4gY2FyZCBidXQgSSdtIHN1cmUgdGhhdCBJIGFtIG1pc3Npbmcgc29t
ZXRoaW5nLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBDb3VsZCBzb21lb25lIHBsZWFzZSBoZWxwIG1lIHRv
IHNlZSB3aGF0IGVsc2UgSSBzaG91bGQgYmUgZG9pbmcgdG8KPj4+Pj4+Pj4gbWFrZSB0aGlzIHdv
cms/IEkndmUgY2hlY2tlZCB0aGlzIG1haWxpbmcgbGlzdCBhbmQgc29tZW9uZSBpbiAyMDA4Cj4+
Pj4+Pj4gaGFkCj4+Pj4+Pj4+IHRoZSBzYW1lIHByb2JsZW0gYnV0IGhlIGRpZG4ndCBtZW50aW9u
IGhvdyB0byBzb2x2ZSBpdC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gSGVyZSBhcmUgdGhlIHBhcnRzIEkn
dmUgbW9kaWZpZWQgZnJvbSBzaWduMy5jLiBDb21wbGV0ZSBzb3VyY2UgaXMgb24KPj4+Pj4+Pj4K
Pj4+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vcGFibG9nYWxsYXJkby9saXZyZW5mZS9ibG9iL2Rl
dmVsb3BtZW50L3NyYy9zaWduLmM6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IHN0YXRpYyB4bWxTZWNLZXlQ
dHIgbG9hZF9rZXkoY29uc3QgY2hhciAqcHdkKSB7Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICB4bWxT
ZWNLZXlQdHIga2V5ID0gTlVMTDsKPj4+Pj4+Pj4gICAgIHhtbFNlY0tleURhdGFQdHIgZGF0YTsK
Pj4+Pj4+Pj4gICAgIEVWUF9QS0VZICpwS2V5ID0gTlVMTDsKPj4+Pj4+Pj4gICAgIGludCByZXQ7
Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICBwS2V5ID0gZ2V0X3ByaXZhdGVfa2V5KHB3ZCk7Cj4+Pj4+
Pj4+ICAgICBpZihwS2V5ID09IE5VTEwpCj4+Pj4+Pj4+ICAgICAgICAgcmV0dXJuIE5VTEw7Cj4+
Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICBkYXRhID0geG1sU2VjT3BlblNTTEV2cEtleUFkb3B0KHBLZXkp
Owo+Pj4+Pj4+PiAgICAgaWYoZGF0YSA9PSBOVUxMKSB7Cj4+Pj4+Pj4+ICAgICAgICAgRVZQX1BL
RVlfZnJlZShwS2V5KTsKPj4+Pj4+Pj4gICAgICAgICByZXR1cm4gTlVMTDsKPj4+Pj4+Pj4gICAg
IH0KPj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgIGtleSA9IHhtbFNlY0tleUNyZWF0ZSgpOwo+Pj4+Pj4+
PiAgICAgaWYoa2V5ID09IE5VTEwpIHsKPj4+Pj4+Pj4gICAgICAgICB4bWxTZWNLZXlEYXRhRGVz
dHJveShkYXRhKTsKPj4+Pj4+Pj4gICAgICAgICByZXR1cm4gTlVMTDsKPj4+Pj4+Pj4gICAgIH0K
Pj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgIHJldCA9IHhtbFNlY0tleVNldFZhbHVlKGtleSwgZGF0YSk7
Cj4+Pj4+Pj4+ICAgICBpZihyZXQgPCAwKSB7Cj4+Pj4+Pj4+ICAgICAgICAgeG1sU2VjS2V5RGVz
dHJveShrZXkpOwo+Pj4+Pj4+PiAgICAgICAgIHhtbFNlY0tleURhdGFEZXN0cm95KGRhdGEpOwo+
Pj4+Pj4+PiAgICAgICAgIHJldHVybiBOVUxMOwo+Pj4+Pj4+PiAgICAgfQo+Pj4+Pj4+PiAgICAg
cmV0dXJuIGtleTsKPj4+Pj4+Pj4gfQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBpbnQgc2lnbl9maWxlKGNv
bnN0IGNoYXIqIHhtbF9maWxlLCBjaGFyICpwYXNzd29yZCkgewo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAu
Li4uLgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAgICAgLyogbG9hZCBwcml2YXRlIGtleSAq
Lwo+Pj4+Pj4+PiAgICAgZHNpZ0N0eC0+c2lnbktleSA9IGxvYWRfa2V5KHBhc3N3b3JkKTsKPj4+
Pj4+Pj4gICAgIGlmKGRzaWdDdHgtPnNpZ25LZXkgPT0gTlVMTCkgewo+Pj4+Pj4+PiAgICAgICAg
IGZwcmludGYoc3RkZXJyLCJFcnJvcjogZmFpbGVkIHRvIGxvYWQgcHJpdmF0ZSBrZXkgZnJvbQo+
Pj4+Pj4+IHNtYXJ0Y2FyZFxuIik7Cj4+Pj4+Pj4+ICAgICBnb3RvIGRvbmU7Cj4+Pj4+Pj4+ICAg
ICB9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ICAgICAvKiBsb2FkIGNlcnRpZmljYXRlIGFuZCBhZGQgdG8g
dGhlIGtleQo+Pj4+Pj4+PiAgICAgaWYoeG1sU2VjQ3J5cHRvQXBwS2V5Q2VydExvYWQoZHNpZ0N0
eC0+c2lnbktleSwgY2VydF9maWxlLAo+Pj4+Pj4+PiB4bWxTZWNLZXlEYXRhRm9ybWF0UGVtKSA8
IDApIHsKPj4+Pj4+Pj4gICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6IGZhaWxlZCB0byBs
b2FkIHBlbSBjZXJ0aWZpY2F0ZQo+Pj4+Pj4+PiBcIiVzXCJcbiIsIGNlcnRfZmlsZSk7Cj4+Pj4+
Pj4+ICAgICAgICAgZ290byBkb25lOwo+Pj4+Pj4+PiAgICAgfSovCj4+Pj4+Pj4+Cj4+Pj4+Pj4+
ICAgICAvKiBzZXQga2V5IG5hbWUgdG8gdGhlIGZpbGUgbmFtZSwgdGhpcyBpcyBqdXN0IGFuIGV4
YW1wbGUhCj4+Pj4+Pj4+ICAgICBpZih4bWxTZWNLZXlTZXROYW1lKGRzaWdDdHgtPnNpZ25LZXks
IGtleV9maWxlKSA8IDApIHsKPj4+Pj4+Pj4gICAgICAgICBmcHJpbnRmKHN0ZGVyciwiRXJyb3I6
IGZhaWxlZCB0byBzZXQga2V5IG5hbWUgZm9yIGtleSBmcm9tCj4+Pj4+Pj4+IFwiJXNcIlxuIiwg
a2V5X2ZpbGUpOwo+Pj4+Pj4+PiAgICAgICAgIGdvdG8gZG9uZTsKPj4+Pj4+Pj4gICAgIH0gKi8K
Pj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgIC8qIHNpZ24gdGhlIHRlbXBsYXRlICovCj4+Pj4+Pj4+ICAg
ICBpZih4bWxTZWNEU2lnQ3R4U2lnbihkc2lnQ3R4LCBzaWduTm9kZSkgPCAwKSB7Cj4+Pj4+Pj4+
ICAgICAgICAgZnByaW50ZihzdGRlcnIsIkVycm9yOiBzaWduYXR1cmUgZmFpbGVkXG4iKTsKPj4+
Pj4+Pj4gICAgICAgICBnb3RvIGRvbmU7Cj4+Pj4+Pj4+ICAgICB9Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+
ICAgICAuLi4uCj4+Pj4+Pj4+IH0KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g
VGhhbmsgeW91IQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBQYWJsbyBHLiBHYWxsYXJkbwo+Pj4+Pj4+PiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+PiB4
bWxzZWMgbWFpbGluZyBsaXN0Cj4+Pj4+Pj4+IHhtbHNlY0BhbGVrc2V5LmNvbQo+Pj4+Pj4+PiBo
dHRwOi8vd3d3LmFsZWtzZXkuY29tL21haWxtYW4vbGlzdGluZm8veG1sc2VjCj4+Pj4+Pj4+Cj4+
Pj4+Pgo+Pj4+Pj4gLS0KPj4+Pj4+IFNlbnQgZnJvbSBteSBBbmRyb2lkIGRldmljZSB3aXRoIEst
OSBNYWlsLiBQbGVhc2UgZXhjdXNlIG15IGJyZXZpdHkuCj4+Pj4+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+IHhtbHNlYyBtYWlsaW5nIGxpc3QK
Pj4+Pj4geG1sc2VjQGFsZWtzZXkuY29tCj4+Pj4+IGh0dHA6Ly93d3cuYWxla3NleS5jb20vbWFp
bG1hbi9saXN0aW5mby94bWxzZWMKPj4+Pj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KeG1sc2VjIG1haWxpbmcgbGlzdAp4bWxzZWNAYWxla3NleS5jb20K
aHR0cDovL3d3dy5hbGVrc2V5LmNvbS9tYWlsbWFuL2xpc3RpbmZvL3htbHNlYwo=