profile
viewpoint
Fedor Indutny indutny @paypal USA http://darksi.de/ While being kept on ice in a Cryostasis Chamber, Fedor Indutny was held in the HYDRA Siberian Facility alongside other Winter Soldiers...

bcoin-org/bcoin 2352

Javascript bitcoin library for node.js and browsers

heapwolf/EventVat 112

An evented, in-process key/value store for small volatile working sets in Node.js or the Browser

gypkg/gypkg 51

GYP-based package manager

Hackchain/hackchain 51

Continuous bitcoin-inspired capture-the-flag challenge. (Alpha)

bcoin-org/plasma 47

Lightning network for BCoin

hyperbloom/hyperbloom 39

HyperBloom Swarm

derivepass/scrypt 26

Dumb self-contained scrypt implementation

hyperbloom/hyperbloom-protocol 24

Implementation of HyperBloom Protocol

derivepass/derivepass 22

CLI and iOS Password derivation utility

push eventindutny/guitar

Fedor Indutny

commit sha eb88577f512cfed09fbdf5aef9e4a711e516ad78

save

view details

push time in 20 hours

push eventindutny/guitar

Fedor Indutny

commit sha 06153045de29a8760db91f3f92649d38907a06e2

save

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha 19475245b70bdc0c03b7c0b1988e27a564e6c8f0

data: pure?

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha 46b4b5ba9b9df7905cfc1d1c08684beaafbe4623

data: oops

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha fdcd8cb9a3a56d860acc6ec02016f7ed49b3903a

data: exp

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha c1f0c76dbc4315857baac4dc7b16885f94a859ea

data: tryout

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha 18d555d52bfd37da736aae9ee0c9766f083b7b5e

save

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha 1fb35afceab86b6b6128e1633db103669c4e4725

save

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha a60409a19c931740b835947b9d76f5d5f15d58bd

fix

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha 74c33fd469d17b3bd738db397018adeb09c4ab1c

save

view details

push time in 2 days

push eventindutny/fretanote

Fedor Indutny

commit sha e08d391a1bce5c552497fd9ca00516da863d469f

data: both fft and real noise

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha 0dd117fca8dd9f529dbf0ca3aafbd57b8edd9e0d

data: real fft

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha c5c836cdba60605ed3edc36903af68e848d11bba

data: up-to-half noise

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha 245ba085a7040292b3f782c11172d9c11ab7b0ff

data: fixed frequency for not present notes

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha 4ac044bb1e30b21e28e391fa3fa59971c02be360

save

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha 8a7c16009ab52fff157846e8a32917a4ed3513fc

validate: more accurate reporting

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha 14d75816b82cf3bf46f09da515b4c8158e087974

validate: better output

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha 8bb502de19acec4b1f16702759f7eb0ca8d960c1

train: cents

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha cb23e413c722136b0ab4f040c4818066a9720c3d

data: use different waveforms

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha f4cfca4f85b7ef427f2ae31429b6d53caa9939fe

data: normalize before/after noise

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha 14c71f3aed9cc74ecdb880a49bf4024ad4da3fd6

train: remove logs

view details

Fedor Indutny

commit sha 3e42a4a881d63e8b17a9eb5a504c4648acb745c3

train: print something, though

view details

push time in 3 days

push eventindutny/fretanote

Fedor Indutny

commit sha f90fc9fb2a206bffad28c76af1baecf9923d700e

data: varying noise level

view details

Fedor Indutny

commit sha 3c6438684f3ac9834fcd1a1087b474e92cf2512a

data: normalize

view details

push time in 3 days

push eventindutny/guitar

Fedor Indutny

commit sha 6868a0d215879be70c34a2ad43949308a1b59ae8

save

view details

push time in 3 days

create barnchindutny/fretanote

branch : master

created branch time in 3 days

created repositoryindutny/fretanote

created time in 3 days

issue commentnodejs/llhttp

How to access HTTP fields like User-Agent?

I sure can. Here's how it is used in Node.js, and here's how it is used in the tests for llhttp.

on_header_field/on_header_value are the callbacks you are looking for. They receive the slice of the parsed string. If you need just the value of the user-agent - you can:

  1. do strcmp on the header name
  2. set a flag in some struct associated with this instance of llhttp_t
  3. on next on_header_field invocation - check the flag and allocate and copy the value
gerald-dotcom

comment created time in 3 days

push eventindutny/guitar

Fedor Indutny

commit sha 34984eda22c92c8c7bb9817cdfa8766175ae7941

save

view details

Fedor Indutny

commit sha efd85cd98cfb3aa8091f49fa52be015d028c287a

save

view details

push time in 4 days

issue commentMagicStack/httptools

new nodejs parser: llhttp

@victoraugustolls I'd be happy to help!

You basically need to do what Node.js does at this moment if you'd like to raise an error from the on_body/etc callbacks:

      llhttp_set_error_reason(&parser_, "HPE_JS_EXCEPTION:JS Exception");
      return HPE_USER;
Skorpeo

comment created time in 4 days

push eventindutny/guitar

Fedor Indutny

commit sha 56b468c241d24af6791a579c9052cc9cb9786654

log: update

view details

push time in 6 days

issue commentnodejs/llhttp

How to access HTTP fields like User-Agent?

Hello!

There are two header callbacks in settings object that should help with this.

gerald-dotcom

comment created time in 6 days

issue closednodejs/llhttp

How to access HTTP fields like User-Agent?

I'm trying to figure out this but fails to see any information regards accessing such fields. I know there is a buffer called Data but am not sure what it supposed to do.

I was only able to access basic fields like Content-Length etc

closed time in 6 days

gerald-dotcom

issue closednodejs/llhttp

Why are you using so many 'abort()' in ./build/c/llhttp.c

llhttp library is used in other program as an auxiliary tool in most cases. any 'abort()' used in this library can crash whole program.

closed time in 6 days

wangxi19

issue commentnodejs/llhttp

Why are you using so many 'abort()' in ./build/c/llhttp.c

@wangxi19 have you found llhttp_init call in the readme? This should be sufficient to initialize the structure.

Use of abort() is not prohibited per se, and if you'll look closely all of the aborts are not actually reachable. They are there for a consistency check of the generated code. If any of them would be triggered the state wouldn't be reliable anyway.

wangxi19

comment created time in 6 days

delete branch nodejs/llhttp

delete branch : amend/gh-66

delete time in 8 days

release nodejs/llhttp

v2.2.0

released time in 8 days

release nodejs/llhttp

v2.1.3

released time in 8 days

release nodejs/llhttp

v2.1.2

released time in 8 days

release nodejs/llhttp

v2.1.1

released time in 8 days

release nodejs/llhttp

v2.1.0

released time in 8 days

release nodejs/llhttp

v2.0.5

released time in 8 days

release nodejs/llhttp

v2.0.4

released time in 8 days

release nodejs/llhttp

v2.0.3

released time in 8 days

release nodejs/llhttp

v2.0.2

released time in 8 days

release nodejs/llhttp

v2.0.1

released time in 8 days

release nodejs/llhttp

v2.0.0

released time in 8 days

PR closed nodejs/llhttp

constants: add RTSP/RAOP methods

Supersedes: #66

cc @nodejs/http

+167 -8

9 comments

4 changed files

indutny

pr closed time in 8 days

pull request commentnodejs/llhttp

constants: add RTSP/RAOP methods

...and released as 2.2.0

indutny

comment created time in 8 days

created tagnodejs/llhttp

tagv2.2.0

Port of http_parser to llparse

created time in 8 days

created tagnodejs/llhttp

tagrelease/v2.2.0

Port of http_parser to llparse

created time in 8 days

push eventnodejs/llhttp

Fedor Indutny

commit sha 8b3939e29a01ffbf9e481a76db81e372f0fb2f0c

release: 2.2.0

view details

push time in 8 days

push eventnodejs/llhttp

Fedor Indutny

commit sha e5c3017cca47736fea5747cfa59f9e2a7dfec866

2.2.0

view details

push time in 8 days

pull request commentnodejs/llhttp

constants: add RTSP/RAOP methods

Landed in 0b0772cda172098651c332e008c15180880a4f47 and 07edcd273d8e6423f3e04f18f35214bcb3a48351. Thanks for checking it!

indutny

comment created time in 8 days

push eventnodejs/llhttp

Derrick Lyndon Pallas

commit sha 0b0772cda172098651c332e008c15180880a4f47

constants: add RTSP/RAOP methods I'm looking at replacing http-parser with llhttp in rpiplay [1]. These are the additional methods used to implement Airplay2 [2]. RTSP [3] uses the verb OPTIONS and adds DESCRIBE, ANNOUNCE, SETUP, PLAY, PAUSE, TEARDOWN, GET_PARAMETER, SET_PARAMETER, REDIRECT, & RECORD. RAOP additionally adds FLUSH. [1] https://github.com/FD-/RPiPlay [2] https://git.zx2c4.com/Airtunes2/about/ [3] https://tools.ietf.org/html/rfc2326 Signed-off-by: Derrick Lyndon Pallas <derrick@pallas.us> PR-URL: https://github.com/nodejs/llhttp/pull/68 Reviewed-By: Fedor Indutny <fedor@indutny.com>

view details

Fedor Indutny

commit sha 07edcd273d8e6423f3e04f18f35214bcb3a48351

http: strict checks for RTSP methods Disallow HTTP methods for RTSP, and vice versa PR-URL: https://github.com/nodejs/llhttp/pull/68 Reviewed-By: Fedor Indutny <fedor@indutny.com>

view details

push time in 8 days

push eventindutny/guitar

Fedor Indutny

commit sha eb1c15c5eec49da2331299e16ab3f296b80146f9

log: new entry

view details

push time in 9 days

push eventindutny/guitar

Fedor Indutny

commit sha ccd24121f8234e32b25933e6cc1408d5347aeaae

log: new entry

view details

push time in 10 days

push eventindutny/guitar

Fedor Indutny

commit sha a08a9ec65216cd770af1f10366cab038cdf404c0

storage: explicit `@impl`

view details

push time in 10 days

push eventindutny/guitar

Fedor Indutny

commit sha 40b5afb49a8675460f66dff7f45ba4b79dea92e2

storage: use GenServer

view details

push time in 10 days

push eventnodejs/llhttp

Fedor Indutny

commit sha 1e69a7e3a8c86d73574d7839e791f658dae56fca

http: strict checks for RTSP methods Disallow HTTP methods for RTSP, and vice versa

view details

push time in 10 days

pull request commentnodejs/llhttp

constants: add RTSP/RAOP methods

@pallas sure thing, done!

indutny

comment created time in 10 days

push eventindutny/guitar

Fedor Indutny

commit sha fadd1dc6e8cbacc4a290a101b5d475f83d3038a6

log: add new entry

view details

push time in 10 days

startedindutny/guitar

started time in 10 days

PublicEvent

push eventindutny/guitar

Fedor Indutny

commit sha 7eda1b751db650358f75d482f6c1e33275236142

lib: fixes

view details

push time in 10 days

push eventindutny/guitar

Fedor Indutny

commit sha 7cae6c4ccfabc47a79ef9cfed3b0e9e192d40c27

cli: amend

view details

Fedor Indutny

commit sha 87393d777bd3d29b00021504c453772ab05ce56a

readme: amend

view details

push time in 10 days

push eventindutny/guitar

Fedor Indutny

commit sha 08a14f218d7bb5fb27d4a46565c5827f7875fa7d

cli: help message

view details

Fedor Indutny

commit sha 0d4a0b2387b2b32ec0ffeb781a464d36d3652d2c

readme: use help message

view details

push time in 10 days

push eventindutny/guitar

Fedor Indutny

commit sha 22f0f4afeab6bde6a259ae8dee16d75dc8b8f90c

readme: better readme

view details

push time in 10 days

Pull request review commentnodejs/llhttp

constants: add RTSP/RAOP methods

 export enum METHODS {   FLUSH = 45, } +export const METHODS_HTTP = [+  METHODS.DELETE,+  METHODS.GET,+  METHODS.HEAD,+  METHODS.POST,+  METHODS.PUT,+  METHODS.CONNECT,+  METHODS.OPTIONS,+  METHODS.TRACE,+  METHODS.COPY,+  METHODS.LOCK,+  METHODS.MKCOL,+  METHODS.MOVE,+  METHODS.PROPFIND,+  METHODS.PROPPATCH,+  METHODS.SEARCH,+  METHODS.UNLOCK,+  METHODS.BIND,+  METHODS.REBIND,+  METHODS.UNBIND,+  METHODS.ACL,+  METHODS.REPORT,+  METHODS.MKACTIVITY,+  METHODS.CHECKOUT,+  METHODS.MERGE,+  METHODS['M-SEARCH'],+  METHODS.NOTIFY,+  METHODS.SUBSCRIBE,+  METHODS.UNSUBSCRIBE,+  METHODS.PATCH,+  METHODS.PURGE,+  METHODS.MKCALENDAR,+  METHODS.LINK,+  METHODS.UNLINK,+  METHODS.PRI,++  // TODO(indutny): should we allow it with HTTP?+  METHODS.SOURCE,+];++export const METHODS_ICE = [+  METHODS.SOURCE,+];++export const METHODS_RTSP = [+  METHODS.OPTIONS,+  METHODS.DESCRIBE,+  METHODS.ANNOUNCE,+  METHODS.SETUP,+  METHODS.PLAY,+  METHODS.PAUSE,+  METHODS.TEARDOWN,+  METHODS.GET_PARAMETER,

Ooops. Should be fixed now!

indutny

comment created time in 10 days

PullRequestReviewEvent

push eventnodejs/llhttp

Fedor Indutny

commit sha 8673e04d7bdfa41afa0b80514f39a24d8df3e429

http: strict checks for RTSP methods Disallow HTTP methods for RTSP, and vice versa

view details

push time in 10 days

pull request commentnodejs/llhttp

constants: add RTSP/RAOP methods

Benchmarks:

with change:

http loose: "seanmonstar/httparse" (C)
8192.00 mb | 1529.18 mb/s | 2280879.50 ops/sec | 5.36 s
http strict: "seanmonstar/httparse" (C)
8192.00 mb | 1414.58 mb/s | 2109943.20 ops/sec | 5.79 s
http loose: "nodejs/http-parser" (C)
8192.00 mb | 1044.18 mb/s | 2105571.59 ops/sec | 7.85 s
http strict: "nodejs/http-parser" (C)
8192.00 mb | 1004.79 mb/s | 2026150.04 ops/sec | 8.15 s

without change:

http loose: "seanmonstar/httparse" (C)
8192.00 mb | 1559.15 mb/s | 2325589.03 ops/sec | 5.25 s
http strict: "seanmonstar/httparse" (C)
8192.00 mb | 1402.73 mb/s | 2092269.69 ops/sec | 5.84 s
http loose: "nodejs/http-parser" (C)
8192.00 mb | 1081.31 mb/s | 2180449.94 ops/sec | 7.58 s
http strict: "nodejs/http-parser" (C)
8192.00 mb | 1027.44 mb/s | 2071824.99 ops/sec | 7.97 s
indutny

comment created time in 10 days

PR closed nodejs/llhttp

constants: add RTSP/RAOP methods

I'm looking at replacing http-parser with llhttp in rpiplay [1]. These are the additional methods used to implement Airplay2 [2]. RTSP [3] uses the verb OPTIONS and adds DESCRIBE, ANNOUNCE, SETUP, PLAY, PAUSE, TEARDOWN, GET_PARAMETER, SET_PARAMETER, REDIRECT, & RECORD. RAOP additionally adds FLUSH.

[1] https://github.com/FD-/RPiPlay [2] https://git.zx2c4.com/Airtunes2/about/ [3] https://tools.ietf.org/html/rfc2326

Signed-off-by: Derrick Lyndon Pallas derrick@pallas.us

+14 -0

6 comments

2 changed files

pallas

pr closed time in 10 days

pull request commentnodejs/llhttp

constants: add RTSP/RAOP methods

@pallas could you take a look at #68 , and perhaps give it a try?

pallas

comment created time in 10 days

PR opened nodejs/llhttp

constants: add RTSP/RAOP methods

Supersedes: #66

cc @nodejs/http

+162 -8

0 comment

4 changed files

pr created time in 10 days

create barnchnodejs/llhttp

branch : amend/gh-66

created branch time in 10 days

pull request commentnodejs/llhttp

constants: add RTSP/RAOP methods

@pallas sorry, it fell through the cracks for me. I'll try to find time to modify your patch tomorrow to make it be on-par with how ICE is currently handled.

pallas

comment created time in 12 days

issue commentnodejs/llhttp

Bindings to other languages

@bryanp looks nice! np!

If I may give an advice - you probably want to free() the settings before freeing the parser :wink: Otherwise it'll leak memory.

derekargueta

comment created time in 15 days

push eventnodejs/llhttp

Fedor Indutny

commit sha dd7f9fef993eefba27dad559a454ee687e292bb8

api: add a comment about `settings` lifetime See: https://github.com/nodejs/llhttp/issues/55#issuecomment-706740459

view details

push time in 15 days

issue commentnodejs/llhttp

Bindings to other languages

@bryanp upon a first look - the problem could be with the settings object. You might want to either allocate it with malloc or to make it a static variable so that it doesn't get filled with garbage after rb_llhttp_allocate exists.

derekargueta

comment created time in 15 days

created tagnodejs/llparse

tagv7.1.0

Generating parsers in LLVM IR

created time in 16 days

push eventnodejs/llparse

Fedor Indutny

commit sha 524f28b142cd20d7e945614fc97b24dfee783eeb

code: introduce `.and()`

view details

Fedor Indutny

commit sha 2d95116541e3f8da58959e59c59255bd904bdfe5

7.1.0

view details

push time in 16 days

created tagindutny/llparse-frontend

tagv3.0.0

Frontend for LLParse (WIP)

created time in 16 days

push eventindutny/llparse-frontend

Fedor Indutny

commit sha 9d879e077c0a981c229c1ffe141bd2e0e3209ca4

code: `and`

view details

Fedor Indutny

commit sha 425b11ae9cc4871a7cbc659625d5e90db342e621

3.0.0

view details

push time in 16 days

created tagindutny/llparse-builder

tagv1.5.2

Graph builder for LLParse

created time in 16 days

push eventindutny/llparse-builder

Fedor Indutny

commit sha b96df41e1f2f50475da7c511757ec8d4af632cf3

package: bump deps yet again

view details

Fedor Indutny

commit sha 4356b59ee97c58f3c8f8686150623e85f65406d9

1.5.2

view details

push time in 16 days

created tagindutny/llparse-builder

tagv1.5.1

Graph builder for LLParse

created time in 16 days

push eventindutny/llparse-builder

Fedor Indutny

commit sha ede1aa873d278e866ae67c03acf0fa2bd812fd97

package: bump deps

view details

Fedor Indutny

commit sha f31cbf68dc740697e34daea0fede0c28f8c2209d

1.5.1

view details

push time in 16 days

created tagindutny/llparse-builder

tagv1.5.0

Graph builder for LLParse

created time in 16 days

push eventindutny/llparse-builder

Fedor Indutny

commit sha 5363add786dc15662ed36565859de67a396279a7

code: introduce `and`

view details

Fedor Indutny

commit sha fd3df6cd542ad4ceb608c65b20250e019052dde2

1.5.0

view details

push time in 16 days

issue commentnodejs/llhttp

Bindings to other languages

@bryanp these functions are provided by other .c files in the src/ folder: https://github.com/nodejs/llhttp/tree/release/src I'd recommend either running make release (and using contents of release/ folder) or (better) using actual releases: https://github.com/nodejs/llhttp/releases

There is no documentation other than what is provided in the header file at this time. I'll be happy to answer your questions here and modify the documentation if anything can be clarified.

derekargueta

comment created time in 17 days

PR closed nodejs/llhttp

Speedup tests execution

On my laptop with 8 cpus:

Without: 1m16.364s With: 0m22.755s

+25 -7

22 comments

4 changed files

fanatid

pr closed time in 19 days

pull request commentnodejs/llhttp

Speedup tests execution

I believe I landed this?

fanatid

comment created time in 19 days

PR closed nodejs/llhttp

http: accept 0xFF as a valid character in header values

Hello! I took a stab at trying to fix the issues I'm seeing in https://github.com/nodejs/node/issues/27711#issuecomment-679469574

I wasn't able to generate a test case using the test suite of this project based on .md files, as I couldn't recreate the 0xFF iso-8859-1 character. However I downloaded the Node source code and copied over the generated C files of this project and then compiled Node itself. When I ran the short program described in the comment above it worked successfully.

I'd like to hear thoughts and opinions on this change.

Kind regards.

+1 -1

4 comments

1 changed file

lukiano

pr closed time in 19 days

issue closednodejs/llhttp

How to get start?

I was looking for llhttp.h file on your release but none found. So, is there any documentation on how would one use your lib?

closed time in 19 days

gerald-dotcom

issue commentnodejs/llhttp

How to get start?

Sorry to hear you couldn't find it!

Did you try downloading a release and extracting it? There is an include/ folder that contains the header, and the header has plenty of documentation!

gerald-dotcom

comment created time in 19 days

issue closednodejs/http-parser

Have "Invalid header value char" error message more explicit

Since the parsing is stricter, the Invalid header value char error message occur much more often, which is a good thing 👍

But on the other hand, the error message is too terse and can't really help spotting which part of header is causing trouble.

I'm right now in a case where our in house Identity Federation system seems to produce randomly such an invalid header answers when calling it to fetch an OAuth2 JWT thru Postman.

I'd love to notify them they have such a trouble, but can't really tell which is the culprit part of it ...

Having the error message being more explicit would greatly help having a fast analysis and thus a faster security enhancement !

closed time in 19 days

Mumeii

issue commentnodejs/http-parser

Have "Invalid header value char" error message more explicit

You should consider using llhttp. It has very similar API to http_parser and was used in Node.js for some time now. In addition to the error codes that http_parser provides, llhttp also provides a error description field, which contains a detailed error, and a error_pos field, which holds the offset to offending character.

Mumeii

comment created time in 19 days

issue closedindutny/elliptic

Array.fill() not working in Chrome 38.

Hello. We have been using v6.4.1 for a couple of years, the oldest browser we need to support is Chrome 38. I updated to 6.5.3 yesterday, and I am seeing that it is not working in Chrome 38. I tracked down a point of failure here: https://github.com/indutny/elliptic/blob/master/lib/elliptic/utils.js#L17 , where Array.fill() is used.

Would it be possible to replace that call with something compatible with Chrome 38?

Thank you.

closed time in 20 days

ajelden

issue commentindutny/elliptic

Array.fill() not working in Chrome 38.

Yay, glad to hear this!

ajelden

comment created time in 20 days

issue commentindutny/elliptic

Array.fill() not working in Chrome 38.

Is there a chance you could just add a polyfill for this?

ajelden

comment created time in 20 days

issue commentindutny/elliptic

Array.fill() not working in Chrome 38.

I'm sorry to hear that!

The Chrome version number is a bit confusing for me. 38 was released in 2015. Is this the one you are referring too?

ajelden

comment created time in 20 days

more