profile
viewpoint

cjihrig/uvwasi 87

WASI syscall API built atop libuv

boson-attic/faas-knative-eventing-example 0

An example of using Knative Eventing with faas runtimes

danbev/centos7-s2i-nodejs 0

OpenShift S2I builder images for Node.js

danbev/ceph 0

Ceph is a distributed object, block, and file storage platform

push eventdanbev/uvwasi

gengjiawen

commit sha be745f51f030a343c6ca727437b26fb46a15a85b

add android build to CI This commit adds a CI task to build the project on Android.

view details

cjihrig

commit sha 527f21dd23a9a0f3ba9f97b87a412a9992465827

add uvwasi_options_init() This commit adds a convenience function, uvwasi_options_init(), to initialize uvwasi_options_t structs to default values.

view details

cjihrig

commit sha 9e752170fd6dec2205ee9ad9997528dd9baee183

poll_oneoff: add missing uv_run() in cleanup This allows ASAN to pass.

view details

cjihrig

commit sha 9e32d30d60efc3f4324fbb2d7e8e6dbf7e0f0797

test: add simple poll_oneoff() test

view details

cjihrig

commit sha f2075155f74593839bedc7bf688ff79fe119349e

update to libuv 1.38.0

view details

cjihrig

commit sha c1063a1c6b55d9f75bc1d05c6e9621ec8fefbcc4

implement filestat_set_times() functions This commit adds proper implementations for uvwasi_fd_filestat_set_times() and uvwasi_path_filestat_set_times(), as well as tests.

view details

cjihrig

commit sha 2bd269bd9f6780493682818a2bc27b8f6cdecd13

update to libuv 1.38.1

view details

cjihrig

commit sha d3fe61d596873e6b81098ef91a2c881ca9773a4d

rename DEBUG() macro to UVWASI_DEBUG() This commit renames the DEBUG() macro to prevent name collisions. Fixes: https://github.com/cjihrig/uvwasi/issues/142

view details

Daniel Bevenius

commit sha f2c8ca1fa61199d2230e414b0715435452dd6da4

build: add -Wall -Werror to CI build This commit adds build flags to CMake to enable all warnings and to turn warnings into errors.

view details

push time in 6 days

pull request commentcjihrig/uvwasi

build: add -Wall -Werror to CI build

I’m on PTO at the moment and won’t be back for another 3 weeks.

But I still don’t have a windows env to try getting the same thing working on windows.

Perhaps this PR could be merged without that as it would at least fail on warnings for Unix environments? If not feel free to close this and I might revisit I when I get back.

lör 25 juli 2020 kl. 17:06 skrev Colin Ihrig notifications@github.com:

@danbev https://github.com/danbev are you still planning to work on this?

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/cjihrig/uvwasi/pull/138#issuecomment-663865750, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADJRX4IOEE2VZ54F3LVPMTR5LYIZANCNFSM4NHOTH7Q .

danbev

comment created time in 10 days

Pull request review commentnodejs/node

bootstrap: include bootstrapped Environment in builtin snapshot

 void Environment::RemoveUnmanagedFd(int fd) {   } } +void Environment::ForEachBaseObject(BaseObjectIterator iterator) {+  size_t i = 0;+  for (const auto& hook : cleanup_hooks_) {+    BaseObject* obj = hook.GetBaseObject();+    if (obj != nullptr) iterator(i, obj);+    i++;+  }+}++void PrintBaseObject(size_t i, BaseObject* obj) {+  std::cout << "#" << i << " " << obj << ": " << obj->MemoryInfoName() << "\n";+}++void Environment::PrintAllBaseObjects() {+  std::cout << "BaseObjects\n";+  ForEachBaseObject(PrintBaseObject);+}++EnvSerializeInfo Environment::Serialize(SnapshotCreator* creator) {+  EnvSerializeInfo info;+  Local<Context> ctx = context();++  info.async_hooks = async_hooks_.Serialize(ctx, creator);+  info.immediate_info = immediate_info_.Serialize(ctx, creator);+  info.tick_info = tick_info_.Serialize(ctx, creator);+  info.performance_state = performance_state_->Serialize(ctx, creator);+  info.stream_base_state = stream_base_state_.Serialize(ctx, creator);+  info.should_abort_on_uncaught_toggle =+      should_abort_on_uncaught_toggle_.Serialize(ctx, creator);++  size_t id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    Local<TypeName> field = PropertyName();                                    \+    if (!field.IsEmpty()) {                                                    \+      size_t index = creator->AddData(field);                                  \+      info.persistent_templates.push_back({#PropertyName, id, index});         \+    }                                                                          \+    id++;                                                                      \+  } while (0);+  ENVIRONMENT_STRONG_PERSISTENT_TEMPLATES(V)+#undef V++  id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    Local<TypeName> field = PropertyName();                                    \+    if (!field.IsEmpty()) {                                                    \+      size_t index = creator->AddData(ctx, field);                             \+      info.persistent_values.push_back({#PropertyName, id, index});            \+    }                                                                          \+    id++;                                                                      \+  } while (0);+  ENVIRONMENT_STRONG_PERSISTENT_VALUES(V)+#undef V++  info.context = creator->AddData(ctx, context());+  return info;+}++std::ostream& operator<<(std::ostream& output,+                         const std::vector<PropInfo>& vec) {+  output << "{\n";+  for (const auto& info : vec) {+    output << "  { \"" << info.name << "\", " << std::to_string(info.id) << ", "+           << std::to_string(info.index) << " },\n";+  }+  output << "}";+  return output;+}++std::ostream& operator<<(std::ostream& output, const EnvSerializeInfo& i) {+  output << "{\n"+         << "// -- async_hooks begins --\n"+         << i.async_hooks << ",\n"+         << "// -- async_hooks begins --\n"+         << i.tick_info << ",  // tick_info\n"+         << i.immediate_info << ",  // immediate_info\n"+         << "// -- performance_state begins --\n"+         << i.performance_state << ",\n"+         << "// -- performance_state ends --\n"+         << i.stream_base_state << ",  // stream_base_state\n"+         << i.should_abort_on_uncaught_toggle+         << ",  // should_abort_on_uncaught_toggle\n"+         << "// -- persistent_templates begins --\n"+         << i.persistent_templates << ",\n"+         << "// persistent_templates ends --\n"+         << "// -- persistent_values begins --\n"+         << i.persistent_values << ",\n"+         << "// -- persistent_values ends --\n"+         << i.context << ",  // context\n"+         << "}";+  return output;+}++void Environment::DeserializeProperties(const EnvSerializeInfo* info) {+  Local<Context> ctx = context();++  async_hooks_.Deserialize(ctx);+  immediate_info_.Deserialize(ctx);+  tick_info_.Deserialize(ctx);+  performance_state_->Deserialize(ctx);+  stream_base_state_.Deserialize(ctx);+  should_abort_on_uncaught_toggle_.Deserialize(ctx);++  if (enabled_debug_list_.enabled(DebugCategory::MKSNAPSHOT)) {+    fprintf(stderr, "deserializing...\n");+    std::cerr << *info << "\n";+  }++  const std::vector<PropInfo>& templates = info->persistent_templates;+  size_t i = 0;  // index to the array+  size_t id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    if (templates.size() > i && id == templates[i].id) {                       \+      const PropInfo& d = templates[i];                                        \+      Debug(this,                                                              \+            DebugCategory::MKSNAPSHOT,                                         \+            "deserializing %s template, %" PRIu64 "/%" PRIu64 " (#%" PRIu64    \+            ") \n",                                                            \+            d.name.c_str(),                                                    \+            static_cast<uint64_t>(i),                                          \+            static_cast<uint64_t>(templates.size()),                           \+            static_cast<uint64_t>(id));                                        \+      DCHECK_EQ(d.name, #PropertyName);                                        \+      MaybeLocal<TypeName> field =                                             \+          isolate_->GetDataFromSnapshotOnce<TypeName>(d.index);                \+      if (field.IsEmpty()) {                                                   \+        fprintf(stderr,                                                        \+                "Failed to deserialize environment template " #PropertyName    \+                "\n");                                                         \+      }                                                                        \+      set_##PropertyName(field.ToLocalChecked());                              \+      i++;                                                                     \+    }                                                                          \+  } while (0);                                                                 \+  id++;+  ENVIRONMENT_STRONG_PERSISTENT_TEMPLATES(V);+#undef V++  i = 0;  // index to the array+  id = 0;+  const std::vector<PropInfo>& values = info->persistent_values;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    if (values.size() > i && id == values[i].id) {                             \+      const PropInfo& d = values[i];                                           \+      Debug(this,                                                              \+            DebugCategory::MKSNAPSHOT,                                         \+            "deserializing %s value, %" PRIu64 "/%" PRIu64 " (#%" PRIu64       \+            ") \n",                                                            \+            d.name.c_str(),                                                    \+            static_cast<uint64_t>(i),                                          \+            static_cast<uint64_t>(values.size()),                              \+            static_cast<uint64_t>(id));                                        \+      DCHECK_EQ(values[i].name, #PropertyName);                                \+      MaybeLocal<TypeName> field =                                             \+          ctx->GetDataFromSnapshotOnce<TypeName>(values[i++].index);           \+      if (field.IsEmpty()) {                                                   \

Perhaps this could use ToLocal to avoid the following ToLocalChecked() call?

joyeecheung

comment created time in 19 days

Pull request review commentnodejs/node

bootstrap: include bootstrapped Environment in builtin snapshot

 void Environment::RemoveUnmanagedFd(int fd) {   } } +void Environment::ForEachBaseObject(BaseObjectIterator iterator) {+  size_t i = 0;+  for (const auto& hook : cleanup_hooks_) {+    BaseObject* obj = hook.GetBaseObject();+    if (obj != nullptr) iterator(i, obj);+    i++;+  }+}++void PrintBaseObject(size_t i, BaseObject* obj) {+  std::cout << "#" << i << " " << obj << ": " << obj->MemoryInfoName() << "\n";+}++void Environment::PrintAllBaseObjects() {+  std::cout << "BaseObjects\n";+  ForEachBaseObject(PrintBaseObject);+}++EnvSerializeInfo Environment::Serialize(SnapshotCreator* creator) {+  EnvSerializeInfo info;+  Local<Context> ctx = context();++  info.async_hooks = async_hooks_.Serialize(ctx, creator);+  info.immediate_info = immediate_info_.Serialize(ctx, creator);+  info.tick_info = tick_info_.Serialize(ctx, creator);+  info.performance_state = performance_state_->Serialize(ctx, creator);+  info.stream_base_state = stream_base_state_.Serialize(ctx, creator);+  info.should_abort_on_uncaught_toggle =+      should_abort_on_uncaught_toggle_.Serialize(ctx, creator);++  size_t id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    Local<TypeName> field = PropertyName();                                    \+    if (!field.IsEmpty()) {                                                    \+      size_t index = creator->AddData(field);                                  \+      info.persistent_templates.push_back({#PropertyName, id, index});         \+    }                                                                          \+    id++;                                                                      \+  } while (0);+  ENVIRONMENT_STRONG_PERSISTENT_TEMPLATES(V)+#undef V++  id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    Local<TypeName> field = PropertyName();                                    \+    if (!field.IsEmpty()) {                                                    \+      size_t index = creator->AddData(ctx, field);                             \+      info.persistent_values.push_back({#PropertyName, id, index});            \+    }                                                                          \+    id++;                                                                      \+  } while (0);+  ENVIRONMENT_STRONG_PERSISTENT_VALUES(V)+#undef V++  info.context = creator->AddData(ctx, context());+  return info;+}++std::ostream& operator<<(std::ostream& output,+                         const std::vector<PropInfo>& vec) {+  output << "{\n";+  for (const auto& info : vec) {+    output << "  { \"" << info.name << "\", " << std::to_string(info.id) << ", "+           << std::to_string(info.index) << " },\n";+  }+  output << "}";+  return output;+}++std::ostream& operator<<(std::ostream& output, const EnvSerializeInfo& i) {+  output << "{\n"+         << "// -- async_hooks begins --\n"+         << i.async_hooks << ",\n"+         << "// -- async_hooks begins --\n"+         << i.tick_info << ",  // tick_info\n"+         << i.immediate_info << ",  // immediate_info\n"+         << "// -- performance_state begins --\n"+         << i.performance_state << ",\n"+         << "// -- performance_state ends --\n"+         << i.stream_base_state << ",  // stream_base_state\n"+         << i.should_abort_on_uncaught_toggle+         << ",  // should_abort_on_uncaught_toggle\n"+         << "// -- persistent_templates begins --\n"+         << i.persistent_templates << ",\n"+         << "// persistent_templates ends --\n"+         << "// -- persistent_values begins --\n"+         << i.persistent_values << ",\n"+         << "// -- persistent_values ends --\n"+         << i.context << ",  // context\n"+         << "}";+  return output;+}++void Environment::DeserializeProperties(const EnvSerializeInfo* info) {+  Local<Context> ctx = context();++  async_hooks_.Deserialize(ctx);+  immediate_info_.Deserialize(ctx);+  tick_info_.Deserialize(ctx);+  performance_state_->Deserialize(ctx);+  stream_base_state_.Deserialize(ctx);+  should_abort_on_uncaught_toggle_.Deserialize(ctx);++  if (enabled_debug_list_.enabled(DebugCategory::MKSNAPSHOT)) {+    fprintf(stderr, "deserializing...\n");+    std::cerr << *info << "\n";+  }++  const std::vector<PropInfo>& templates = info->persistent_templates;+  size_t i = 0;  // index to the array+  size_t id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    if (templates.size() > i && id == templates[i].id) {                       \+      const PropInfo& d = templates[i];                                        \+      Debug(this,                                                              \+            DebugCategory::MKSNAPSHOT,                                         \+            "deserializing %s template, %" PRIu64 "/%" PRIu64 " (#%" PRIu64    \+            ") \n",                                                            \+            d.name.c_str(),                                                    \+            static_cast<uint64_t>(i),                                          \+            static_cast<uint64_t>(templates.size()),                           \+            static_cast<uint64_t>(id));                                        \+      DCHECK_EQ(d.name, #PropertyName);                                        \+      MaybeLocal<TypeName> field =                                             \+          isolate_->GetDataFromSnapshotOnce<TypeName>(d.index);                \+      if (field.IsEmpty()) {                                                   \+        fprintf(stderr,                                                        \+                "Failed to deserialize environment template " #PropertyName    \+                "\n");                                                         \+      }                                                                        \+      set_##PropertyName(field.ToLocalChecked());                              \+      i++;                                                                     \+    }                                                                          \+  } while (0);                                                                 \+  id++;+  ENVIRONMENT_STRONG_PERSISTENT_TEMPLATES(V);+#undef V++  i = 0;  // index to the array+  id = 0;+  const std::vector<PropInfo>& values = info->persistent_values;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    if (values.size() > i && id == values[i].id) {                             \+      const PropInfo& d = values[i];                                           \+      Debug(this,                                                              \+            DebugCategory::MKSNAPSHOT,                                         \+            "deserializing %s value, %" PRIu64 "/%" PRIu64 " (#%" PRIu64       \+            ") \n",                                                            \+            d.name.c_str(),                                                    \+            static_cast<uint64_t>(i),                                          \+            static_cast<uint64_t>(values.size()),                              \+            static_cast<uint64_t>(id));                                        \+      DCHECK_EQ(values[i].name, #PropertyName);                                \+      MaybeLocal<TypeName> field =                                             \+          ctx->GetDataFromSnapshotOnce<TypeName>(values[i++].index);           \+      if (field.IsEmpty()) {                                                   \+        fprintf(stderr,                                                        \+                "Failed to deserialize environment value " #PropertyName       \+                "\n");                                                         \+      }                                                                        \+      set_##PropertyName(field.ToLocalChecked());                              \+    }                                                                          \+  } while (0);                                                                 \+  id++;+  ENVIRONMENT_STRONG_PERSISTENT_VALUES(V);+#undef V++  MaybeLocal<Context> ctx_from_snapshot =+      ctx->GetDataFromSnapshotOnce<Context>(info->context);+  if (ctx_from_snapshot.IsEmpty()) {

Perhaps this could use ToLocal to avoid the following ToLocalChecked() call?

joyeecheung

comment created time in 19 days

Pull request review commentnodejs/node

bootstrap: include bootstrapped Environment in builtin snapshot

 void Environment::RemoveUnmanagedFd(int fd) {   } } +void Environment::ForEachBaseObject(BaseObjectIterator iterator) {+  size_t i = 0;+  for (const auto& hook : cleanup_hooks_) {+    BaseObject* obj = hook.GetBaseObject();+    if (obj != nullptr) iterator(i, obj);+    i++;+  }+}++void PrintBaseObject(size_t i, BaseObject* obj) {+  std::cout << "#" << i << " " << obj << ": " << obj->MemoryInfoName() << "\n";+}++void Environment::PrintAllBaseObjects() {+  std::cout << "BaseObjects\n";+  ForEachBaseObject(PrintBaseObject);+}++EnvSerializeInfo Environment::Serialize(SnapshotCreator* creator) {+  EnvSerializeInfo info;+  Local<Context> ctx = context();++  info.async_hooks = async_hooks_.Serialize(ctx, creator);+  info.immediate_info = immediate_info_.Serialize(ctx, creator);+  info.tick_info = tick_info_.Serialize(ctx, creator);+  info.performance_state = performance_state_->Serialize(ctx, creator);+  info.stream_base_state = stream_base_state_.Serialize(ctx, creator);+  info.should_abort_on_uncaught_toggle =+      should_abort_on_uncaught_toggle_.Serialize(ctx, creator);++  size_t id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    Local<TypeName> field = PropertyName();                                    \+    if (!field.IsEmpty()) {                                                    \+      size_t index = creator->AddData(field);                                  \+      info.persistent_templates.push_back({#PropertyName, id, index});         \+    }                                                                          \+    id++;                                                                      \+  } while (0);+  ENVIRONMENT_STRONG_PERSISTENT_TEMPLATES(V)+#undef V++  id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    Local<TypeName> field = PropertyName();                                    \+    if (!field.IsEmpty()) {                                                    \+      size_t index = creator->AddData(ctx, field);                             \+      info.persistent_values.push_back({#PropertyName, id, index});            \+    }                                                                          \+    id++;                                                                      \+  } while (0);+  ENVIRONMENT_STRONG_PERSISTENT_VALUES(V)+#undef V++  info.context = creator->AddData(ctx, context());+  return info;+}++std::ostream& operator<<(std::ostream& output,+                         const std::vector<PropInfo>& vec) {+  output << "{\n";+  for (const auto& info : vec) {+    output << "  { \"" << info.name << "\", " << std::to_string(info.id) << ", "+           << std::to_string(info.index) << " },\n";+  }+  output << "}";+  return output;+}++std::ostream& operator<<(std::ostream& output, const EnvSerializeInfo& i) {+  output << "{\n"+         << "// -- async_hooks begins --\n"+         << i.async_hooks << ",\n"+         << "// -- async_hooks begins --\n"+         << i.tick_info << ",  // tick_info\n"+         << i.immediate_info << ",  // immediate_info\n"+         << "// -- performance_state begins --\n"+         << i.performance_state << ",\n"+         << "// -- performance_state ends --\n"+         << i.stream_base_state << ",  // stream_base_state\n"+         << i.should_abort_on_uncaught_toggle+         << ",  // should_abort_on_uncaught_toggle\n"+         << "// -- persistent_templates begins --\n"+         << i.persistent_templates << ",\n"+         << "// persistent_templates ends --\n"+         << "// -- persistent_values begins --\n"+         << i.persistent_values << ",\n"+         << "// -- persistent_values ends --\n"+         << i.context << ",  // context\n"+         << "}";+  return output;+}++void Environment::DeserializeProperties(const EnvSerializeInfo* info) {+  Local<Context> ctx = context();++  async_hooks_.Deserialize(ctx);+  immediate_info_.Deserialize(ctx);+  tick_info_.Deserialize(ctx);+  performance_state_->Deserialize(ctx);+  stream_base_state_.Deserialize(ctx);+  should_abort_on_uncaught_toggle_.Deserialize(ctx);++  if (enabled_debug_list_.enabled(DebugCategory::MKSNAPSHOT)) {+    fprintf(stderr, "deserializing...\n");+    std::cerr << *info << "\n";+  }++  const std::vector<PropInfo>& templates = info->persistent_templates;+  size_t i = 0;  // index to the array+  size_t id = 0;+#define V(PropertyName, TypeName)                                              \+  do {                                                                         \+    if (templates.size() > i && id == templates[i].id) {                       \+      const PropInfo& d = templates[i];                                        \+      Debug(this,                                                              \+            DebugCategory::MKSNAPSHOT,                                         \+            "deserializing %s template, %" PRIu64 "/%" PRIu64 " (#%" PRIu64    \+            ") \n",                                                            \+            d.name.c_str(),                                                    \+            static_cast<uint64_t>(i),                                          \+            static_cast<uint64_t>(templates.size()),                           \+            static_cast<uint64_t>(id));                                        \+      DCHECK_EQ(d.name, #PropertyName);                                        \+      MaybeLocal<TypeName> field =                                             \+          isolate_->GetDataFromSnapshotOnce<TypeName>(d.index);                \+      if (field.IsEmpty()) {                                                   \

Perhaps this could use ToLocal to avoid the following ToLocalChecked() call?

      MaybeLocal<TypeName> maybe_field =                                       \
          isolate_->GetDataFromSnapshotOnce<TypeName>(d.index);                \
      Local<TypeName> field;                                                   \
      if (!maybe_field.ToLocal(&field)) {                                      \
        fprintf(stderr,                                                        \
                "Failed to deserialize environment template " #PropertyName    \
                "\n");                                                         \
      }                                                                        \
      set_##PropertyName(field);   
joyeecheung

comment created time in 19 days

Pull request review commentnodejs/node

bootstrap: include bootstrapped Environment in builtin snapshot

 void Environment::CollectUVExceptionInfo(Local<Value> object,                              syscall, message, path, dest); } +ImmediateInfo::ImmediateInfo(v8::Isolate* isolate, const SerializeInfo* info)+    : fields_(isolate, kFieldsCount, MAYBE_FIELD_PTR(info, fields)) {}++ImmediateInfo::SerializeInfo ImmediateInfo::Serialize(+    v8::Local<v8::Context> context, v8::SnapshotCreator* creator) {+  return {fields_.Serialize(context, creator)};+}++void ImmediateInfo::Deserialize(Local<Context> context) {+  fields_.Deserialize(context);+}++std::ostream& operator<<(std::ostream& output,+                         const ImmediateInfo::SerializeInfo& i) {+  output << "{ " << i.fields << " }";+  return output;+}+ void ImmediateInfo::MemoryInfo(MemoryTracker* tracker) const {   tracker->TrackField("fields", fields_); } +TickInfo::SerializeInfo TickInfo::Serialize(v8::Local<v8::Context> context,+                                            v8::SnapshotCreator* creator) {+  return {fields_.Serialize(context, creator)};+}++void TickInfo::Deserialize(Local<Context> context) {+  fields_.Deserialize(context);+}++std::ostream& operator<<(std::ostream& output,+                         const TickInfo::SerializeInfo& i) {+  output << "{ " << i.fields << " }";+  return output;+}+ void TickInfo::MemoryInfo(MemoryTracker* tracker) const {   tracker->TrackField("fields", fields_); } +TickInfo::TickInfo(v8::Isolate* isolate, const SerializeInfo* info)+    : fields_(+          isolate, kFieldsCount, info == nullptr ? nullptr : &(info->fields)) {}++AsyncHooks::AsyncHooks(v8::Isolate* isolate, const SerializeInfo* info)+    : async_ids_stack_(isolate, 16 * 2, MAYBE_FIELD_PTR(info, async_ids_stack)),+      fields_(isolate, kFieldsCount, MAYBE_FIELD_PTR(info, fields)),+      async_id_fields_(+          isolate, kUidFieldsCount, MAYBE_FIELD_PTR(info, async_id_fields)),+      info_(info) {+  v8::HandleScope handle_scope(isolate);+  if (info == nullptr) {+    clear_async_id_stack();++    // Always perform async_hooks checks, not just when async_hooks is enabled.+    // TODO(AndreasMadsen): Consider removing this for LTS releases.+    // See discussion in https://github.com/nodejs/node/pull/15454+    // When removing this, do it by reverting the commit. Otherwise the test+    // and flag changes won't be included.+    fields_[kCheck] = 1;++    // kDefaultTriggerAsyncId should be -1, this indicates that there is no+    // specified default value and it should fallback to the executionAsyncId.+    // 0 is not used as the magic value, because that indicates a missing+    // context which is different from a default context.+    async_id_fields_[AsyncHooks::kDefaultTriggerAsyncId] = -1;++    // kAsyncIdCounter should start at 1 because that'll be the id the execution+    // context during bootstrap (code that runs before entering uv_run()).+    async_id_fields_[AsyncHooks::kAsyncIdCounter] = 1;+  }+}++void AsyncHooks::Deserialize(Local<Context> context) {+  async_ids_stack_.Deserialize(context);+  fields_.Deserialize(context);+  async_id_fields_.Deserialize(context);+  if (info_->js_execution_async_resources != 0) {+    v8::Local<v8::Array> arr = context+                                   ->GetDataFromSnapshotOnce<v8::Array>(+                                       info_->js_execution_async_resources)+                                   .ToLocalChecked();+    js_execution_async_resources_.Reset(context->GetIsolate(), arr);+  }++  native_execution_async_resources_.resize(+      info_->native_execution_async_resources.size());+  for (size_t i = 0; i < info_->native_execution_async_resources.size(); ++i) {+    v8::Local<v8::Object> obj =+        context+            ->GetDataFromSnapshotOnce<v8::Object>(+                info_->native_execution_async_resources[i])+            .ToLocalChecked();+    native_execution_async_resources_[i].Reset(context->GetIsolate(), obj);+  }+  info_ = nullptr;+}++std::ostream& operator<<(std::ostream& output,+                         const std::vector<SnapshotIndex>& v) {+  output << "{ ";+  for (const SnapshotIndex i : v) {+    output << i << ", ";+  }+  output << " }\n";

Nit: perhaps the newline character can be omitted here?

At the moment this will generate the following output:

// -- async_hooks begins --
{
  0,  // async_ids_stack
  1,  // fields
  2,  // async_id_fields
  3,  // js_execution_async_resources
  {  }
,  // native_execution_async_resources
},
// -- async_hooks ends --

And without the newline character it would be:

// -- async_hooks begins --
{
  0,  // async_ids_stack
  1,  // fields
  2,  // async_id_fields
  3,  // js_execution_async_resources
  {  },  // native_execution_async_resources
},
// -- async_hooks ends --

joyeecheung

comment created time in 19 days

push eventdanbev/learning-cpp

Daniel Bevenius

commit sha 113601a2f37b666d0c803c9384efc308c4a37bce

src: add example of getting function address

view details

push time in 19 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 948d0b5e92cd85cb01c8cb4d7d0a155c26acde3c

doc: add exernal reference section

view details

push time in 19 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha db8996278ef4b542c68fa2b2f6bb6dfd4c9da43e

src: remove v8 namespace qualifier

view details

push time in 19 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha b4371941484a15fbef4fcd1bb0855a008224f285

src: add external_references snapshot example

view details

push time in 19 days

issue commentnodejs/TSC

Node.js Technical Steering Committee (TSC) Meeting 2020-07-16

I won't be able to make the meeting today but just wanted to say that I've started to review https://github.com/nodejs/node/pull/32984 and will continue tomorrow. I also hope to have time to take a closer look at @addaleax suggestion but I only have tomorrow before a month of PTO.

mhdawson

comment created time in 19 days

Pull request review commentnodejs/node

bootstrap: include bootstrapped Environment in builtin snapshot

 int Start(int argc, char** argv) {     Isolate::CreateParams params;     const std::vector<size_t>* indexes = nullptr;     std::vector<intptr_t> external_references;

I think external_references can be removed as it does not look like it is used anymore.

joyeecheung

comment created time in 20 days

Pull request review commentnodejs/node

bootstrap: include bootstrapped Environment in builtin snapshot

 void NativeModuleEnv::Initialize(Local<Object> target,   target->SetIntegrityLevel(context, IntegrityLevel::kFrozen).FromJust(); } +void NativeModuleEnv::RegisterExternalReferences(+    ExternalReferenceRegistry* registry) {+  registry->Register(ConfigStringGetter);+  registry->Register(ModuleIdsGetter);+  registry->Register(ModuleIdsGetter);

It looks like ModuleIdsGetter is getting registered twice here?:

(lldb) expr external_references_
(std::vector<long, std::allocator<long int> >) $6 = size=85 {
  ....
  [83] = 25056866
  [84] = 25056866

(lldb) expr reinterpret_cast<intptr_t>(node::native_module::NativeModuleEnv::ModuleIdsGetter)
(intptr_t) $11 = 25056866
joyeecheung

comment created time in 20 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha b6ccb184ae0b7b2de58ca0a9c428199d44c9d817

src: add AddData example

view details

push time in 20 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 9acdac2b6998b05213169107349c39947c1ec8c9

doc,src: add notes about CreateSnapshot test

view details

push time in 20 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 336ecade520543f1e7b9de7c727338288641ed3c

test: remove unused _v8_internal_Print_Object

view details

push time in 21 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 42cd997d09f0c8fb3ee5dd5b06879bfc27ce560d

src: remove exeption handling and add comments

view details

push time in 21 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 589cff5b0c5e4c473eece153b9984adea8958b9e

src: use Context::FromSnapshot to create the Context

view details

push time in 21 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 21de21826677e63baaa9945001f6fd99adb7e9c9

src: add snapshot exploration (wip)

view details

push time in 21 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 9d2c203ea89eb1d92650e8cbef84bcc674a7ee96

doc: various cleanups to README.md

view details

push time in 21 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 2369ea946c018977f974b279cca5212d17af5fa9

doc: add snapshot notes (wip)

view details

push time in 22 days

delete branch danbev/node

delete branch : build_regen_make

delete time in 22 days

PR closed nodejs/node

build,tools: fix cmd_regen_makefile author ready build tools

Currently, after having configured and built node and then updating a dependent target the following error is produced when trying to rebuild the project:

$ ./configure && make -j8
$ touch node.gypi
$ make -j8
configure: error: no such option: -f
make[1]: *** [Makefile:685: Makefile] Error 2

The reason for this is that the target cmd_regen_makefile is using the command configure instead of gyp_node.py in out/Makefile:

cmd_regen_makefile = cd $(srcdir); /work/nodejs/node/configure -fmake

As far as I can tell gyp is using sys.argv[0] as the gyp_binary in __init__.py:

params = {'options': options,
              ...
              'gyp_binary': sys.argv[0],

But when called via 'configure' sys.argv[0] is 'configure' instead of gyp_node.py leading to the above error.

This commit suggests setting the program name explicitly in gyp_node.py. Alternatively perhaps this could be done in configure.py instead but I was not sure what would be best.

<!-- Thank you for your pull request. Please provide a description above and review the requirements below.

Bug fixes and new features should include tests and possibly benchmarks.

Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md -->

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+6 -0

4 comments

1 changed file

danbev

pr closed time in 22 days

pull request commentnodejs/node

build,tools: fix cmd_regen_makefile

Landed in 8da0ae2526ffcd8981d4d0f0a9d3888ec398fbb9.

danbev

comment created time in 22 days

push eventnodejs/node

Daniel Bevenius

commit sha 8da0ae2526ffcd8981d4d0f0a9d3888ec398fbb9

build,tools: fix cmd_regen_makefile Currently, after having configured and built node and then updating a dependent target the following error is produced when trying to rebuild the project: $ ./configure && make -j8 $ touch node.gypi $ make -j8 configure: error: no such option: -f make[1]: *** [Makefile:685: Makefile] Error 2 The reason for this is that the target 'cmd_regen_makefile' is using the command 'configure' instead of 'gyp_node.py' in out/Makefile: cmd_regen_makefile = cd $(srcdir); /work/nodejs/node/configure -fmake As far as I can tell gyp is using sys.argv[0] as the 'gyp_binary' in __init__.py: params = {'options': options, ... 'gyp_binary': sys.argv[0], But when called via 'configure' sys.argv[0] is 'configure' instead of gyp_node.py leading to the above error. This commit suggests setting the program name explicitly in gyp_node.py. Alternatively perhaps this could be done in configure.py instead but I was not sure what would be best. PR-URL: https://github.com/nodejs/node/pull/34255 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

push time in 22 days

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 2696783111d747194d3fd9927136d9e7cc13ceac

doc: extract GN notes into separate file

view details

push time in 22 days

push eventdanbev/learning-cpp

Daniel Bevenius

commit sha 2b200f4c35d37b138e8e0323a96c44897f3f3227

src: add static factory example

view details

push time in 22 days

PR closed nodejs/node

src: use FromMaybe instead of ToLocal in GetCert C++ crypto
Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+1 -2

2 comments

1 changed file

danbev

pr closed time in 23 days

pull request commentnodejs/node

src: use FromMaybe instead of ToLocal in GetCert

Landed in eabe22b73371e59838f5ff501804aca3aae9f4a9.

danbev

comment created time in 23 days

delete branch danbev/node

delete branch : crypto_get_cipher_strings

delete time in 23 days

PR closed nodejs/node

src: add GetCipherValue function C++ crypto

This commit extracts the code that is the same in GetCipherName, GetCipherStandardName, and GetCipherVersion into function named GetCipherValue.

The motivation for this change is to improve readabilty by removing the duplicated code.

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+11 -15

2 comments

1 changed file

danbev

pr closed time in 23 days

pull request commentnodejs/node

src: add GetCipherValue function

Landed in f9402b23fd0eeae317af593498c3434e984310ae.

danbev

comment created time in 23 days

push eventnodejs/node

Daniel Bevenius

commit sha f9402b23fd0eeae317af593498c3434e984310ae

src: add GetCipherValue function This commit extracts the code that is the same in GetCipherName, GetCipherStandardName, and GetCipherVersion into function named GetCipherValue. The motivation for this change is to improve readabilty by removing the duplicated code. PR-URL: https://github.com/nodejs/node/pull/34287 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

push time in 23 days

push eventdanbev/node

Daniel Bevenius

commit sha a1b206d907ba5178c80a99078e7b5bca640400d9

squash!: use function pointer instead of std::function

view details

push time in a month

Pull request review commentnodejs/node

src: add GetCipherValue function

 Local<Value> ToV8Value(Environment* env, const BIOPointer& bio) {   return ret.FromMaybe(Local<Value>()); } -MaybeLocal<Value> GetCipherName(-    Environment* env,-    const SSL_CIPHER* cipher) {+MaybeLocal<Value> GetCipherValue(Environment* env,+    const SSL_CIPHER* cipher,+    std::function<const char*(const SSL_CIPHER* cipher)> getstr) {

Ah good point, I'll update this shortly. Thanks!

danbev

comment created time in a month

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 592e50b6dc725b5c984061741fdaed7b798aa139

doc: add mksnapshot usage message

view details

push time in a month

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 3c8117876879556ee4a2c16210b07bad946b147b

doc: extract snapshot section into separate file

view details

push time in a month

PR opened nodejs/node

src: add GetCipherValue function

This commit extracts the code that is the same in GetCipherName, GetCipherStandardName, and GetCipherVersion into function named GetCipherValue.

The motivation for this change is to improve readabilty by removing the duplicated code.

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+11 -15

0 comment

1 changed file

pr created time in a month

push eventdanbev/node

James M Snell

commit sha c53513162706ef89943ec5143729561739690483

quic: additional minor cleanups in node_quic_session.h PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha bcde849be9f4a4593d99d77cbc1d87ba9fdc27ba

quic: remove unnecessary bool conversion The argument will always be a boolean already PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha edc71ef008cb8ac68b86da3a3df8d826aae6a249

quic: handle errors thrown / rejections in the session event Errors thrown within the session event handler will be handled by destroying the session (allowing a proper connection close to be sent to the client peer). They will not crash the parent QuicSocket by default. Instead, a `'sessionError'` event will be emitted, allowing the error to be logged or handled. PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha cc89aac5f7d5443e0be9d037f067391ab144244e

quic: refactor/improve error handling for busy event Also, change setServerBusy into a setter PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha e3813261b87f813cbd0cdc5199434de44b2a0c6a

quic: add tests confirming error handling for QuicSocket close event PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha afc9390ae58bdd7e5631402e4d3a0219d7f25993

quic: refactor/improve QuicSocket ready event handling PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha 94372b124a8c262d5104dc2a441d5af5e9355fd1

quic: refactor/improve/document QuicSocket listening event PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha 71236097d0e8782988c4b26049748197d963e4f5

quic: use Number() instead of bigint for QuicSocket stats PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

Anna Henningsen

commit sha f2753c769591ec742921e4ee9455e0402aae863e

quic: unref timers again 0f97d6066a9037f59 accidentally removed this. Refs: https://github.com/nodejs/node/pull/34186 PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: James M Snell <jasnell@gmail.com>

view details

James M Snell

commit sha d08e99de242898c40e9410b9cb1e86c1bb8f830f

quic: use getter/setter for stateless reset toggle PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha fe11f6bf7cf8de128c224d06cb076e7fe571dfd3

quic: cleanup QuicSocketFlags, used shared state struct Some of the flags were no longer being used. Switched to use an AliasedStruct for shared state to avoid extraneous expensive JS=>C++ calls. Removed unused QuicSocket option PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha 511f8c1138afad082bdad048a09ac345d8ec57a3

quic: proper custom inspect for QuicEndpoint PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha b047930d76a4f011cd9961ea34bff7652629d7a4

quic: proper custom inspect for QuicSocket PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha 0860b11655c57597e36b8766157a5188d2e7ca22

quic: proper custom inspect for QuicSession PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha 458d243f20f48381c681ff29d09199bbb7c8f731

quic: proper custom inspect for QuicStream PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha 26493c02a26270cfbdd0cf3e46a7eaf649a7874a

quic: remove no longer valid CHECK PR-URL: https://github.com/nodejs/node/pull/34247 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha a95fb930d0d2bcf8ba3c86f4525d1348e60a7507

doc: document security issues with url.parse() Fixes: https://github.com/nodejs/node/issues/31279 PR-URL: https://github.com/nodejs/node/pull/34226 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

James M Snell

commit sha 949d1c1f0c65867f2cc79b860c83a2f76d4aee9d

doc: document behavior for once(ee, 'error') Fixes: https://github.com/nodejs/node/issues/31244 PR-URL: https://github.com/nodejs/node/pull/34225 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

James M Snell

commit sha 62bdb7e801ace08d5ec5443c10e89947bd94b288

doc: add note about multiple sync events and once Fixes: https://github.com/nodejs/node/issues/32431 PR-URL: https://github.com/nodejs/node/pull/34220 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

view details

James M Snell

commit sha 14ac6e42262fa89440be17122421d7f1fac7feb8

doc: document that whitespace is ignored in base64 decoding Fixes: https://github.com/nodejs/node/issues/8569 PR-URL: https://github.com/nodejs/node/pull/34227 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 9506446a0f57f1f5b68ff82eee4d0fc1bd8d3ed3

doc: add example of running single OpenSSL test

view details

push time in a month

create barnchdanbev/node

branch : crypto_get_cipher_strings

created branch time in a month

PR opened nodejs/node

src: use FromMaybe instead of ToLocal in GetCert
Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+1 -2

0 comment

1 changed file

pr created time in a month

create barnchdanbev/node

branch : crypto-getcert

created branch time in a month

push eventdanbev/openssl

Daniel Bevenius

commit sha 937a444f56ac0528a2146a973d2e0f37243c00b0

Revert "Configure: remove ref to missing Makefile.tmpl" This reverts commit a2567ac25252d0617fe7dc6ba52b966e8c1b2ed1.

view details

Daniel Bevenius

commit sha d01eb61d5225295cb6ebdf4cc31558fbebab44d2

Configurations: make Makefile tmpl files non-links This commit updates Configurations/README.md and turns the Makefile templates into non-links. The motivation for this is that not all template exist in the directory leading to 404 Not found errors when accessed.

view details

push time in a month

Pull request review commentopenssl/openssl

Configure: remove ref to missing Makefile.tmpl

 For any name given by `build_file`, the "unified" system expects a template file in `Configurations/` named like the build file, with `.tmpl` appended, or in case of possible ambiguity, a combination of the second `build_scheme` list item and the `build_file` name.  For-example, if `build_file` is set to `Makefile`, the template could be-[`Configurations/Makefile.tmpl`](Makefile.tmpl) or+example, if `build_file` is set to `Makefile`, the template would be [`Configurations/unix-Makefile.tmpl`](unix-Makefile.tmpl).-In case both [`Configurations/unix-Makefile.tmpl`](Makefile.tmpl) and-[`Configurations/Makefile.tmpl`](Makefile.tmpl) are present, the former takes-precedence.

That makes sense, I'll update it. Thanks

danbev

comment created time in a month

Pull request review commentopenssl/openssl

Configure: remove ref to missing Makefile.tmpl

 if ($builder eq "unified") {     # Store the name of the template file we will build the build file from     # in %config.  This may be useful for the build file itself.     my @build_file_template_names =-        ( $builder_platform."-".$target{build_file}.".tmpl",-          $target{build_file}.".tmpl" );+        ( $builder_platform."-".$target{build_file}.".tmpl" );

Ah I see, thanks!

danbev

comment created time in a month

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 9d1c2966f0c4a8081e296169b92d7bc9bbe9d90a

src: misc updates to context_test.cc

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 972880b2196099620bd696304bd333ac8abdfbaa

doc: update OpenSSL Build system section

view details

push time in a month

PR opened openssl/openssl

Configure: remove ref to missing Makefile.tmpl

This commit removes the reference to Makefile.tmpl in Configurations/README.md, and also removes it from the @build_file_templates array in the Configure script.

The motivation for removing it is that this file is referenced in Configurations/README.md but as this file does not exist it leads to a 404 Not Found.

I'm not really sure this should be removed from Configure, or if the updates made to Configurations/README.md are correct but hopefully others can chime in and provide advise on this.

+2 -7

0 comment

2 changed files

pr created time in a month

create barnchdanbev/openssl

branch : configuration-templates

created branch time in a month

create barnchdanbev/openssl

branch : configure-typo

created branch time in a month

PR opened openssl/openssl

Configure: fix minor typo in apitable comment
+1 -1

0 comment

1 changed file

pr created time in a month

push eventdanbev/node

Daniel Bevenius

commit sha 2a3b3cf815593a6a05641e9c35184041c17f5bfd

squash!: correct comment

view details

push time in a month

Pull request review commentnodejs/node

build,tools: fix cmd_regen_makefile

 def run_gyp(args):   args.append('-Dlinux_use_bundled_gold=0')   args.append('-Dlinux_use_gold_flags=0') +  # Set the current program to this module. This is done because gyp+  # will the program path in targets it generates. If this script was called

Fixed now, thanks!

danbev

comment created time in a month

issue commentnodejs/node

[Tracking Issue] OpenSSL 3

There are two failing tests at the moment:

The snapshot issue related to Alpha 4 mentioned above has been fixed in https://github.com/openssl/openssl/issues/12290

For the time being the deprecation warnings are being suppressed by setting OPENSSL_API_COMAT in https://github.com/nodejs/node/commit/a40bab8122b40ce36c623323e60087285d01e5fc.

jasnell

comment created time in a month

push eventnodejs/node

Daniel Bevenius

commit sha a40bab8122b40ce36c623323e60087285d01e5fc

build: add OPENSSL_API_COMPAT macro This commit adds the OPENSSL_API_COMPAT macro and sets it to version 1.1.1 of OpenSSL when linking with a shared OpenSSL library. The motivation for this is that when linking against OpenSSL 3.x there are a lot of deprecation warnings and this allows them to be avoided. When we later upgrade the code base to 3.x this value can then be updated.

view details

push time in a month

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 8ea566341b738dd41da037cb2635d79571d9f8e5

src: get isolate_test to compile again

view details

push time in a month

PR opened nodejs/node

build,tools: fix cmd_regen_makefile

Currently, after having configured and built node and then updating a dependent target the following error is produced when trying to rebuild the project:

$ ./configure && make -j8
$ touch node.gypi
$ make -j8
configure: error: no such option: -f
make[1]: *** [Makefile:685: Makefile] Error 2

The reason for this is that the target cmd_regen_makefile is using the command configure instead of gyp_node.py in out/Makefile:

cmd_regen_makefile = cd $(srcdir); /work/nodejs/node/configure -fmake

As far as I can tell gyp is using sys.argv[0] as the gyp_binary in __init__.py:

params = {'options': options,
              ...
              'gyp_binary': sys.argv[0],

But when called via 'configure' sys.argv[0] is 'configure' instead of gyp_node.py leading to the above error.

This commit suggests setting the program name explicitly in gyp_node.py. Alternatively perhaps this could be done in configure.py instead but I was not sure what would be best.

<!-- Thank you for your pull request. Please provide a description above and review the requirements below.

Bug fixes and new features should include tests and possibly benchmarks.

Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md -->

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+6 -0

0 comment

1 changed file

pr created time in a month

push eventdanbev/node

Daniel Bevenius

commit sha 9e30b7342f5a6fc2db222d86e6a7e59211cd189a

build,tools: fix cmd_regen_makefile Currently, after having configured and built node and then updating a dependent target the following error is produced when trying to rebuild the project: $ ./configure && make -j8 $ touch node.gypi $ make -j8 configure: error: no such option: -f make[1]: *** [Makefile:685: Makefile] Error 2 The reason for this is that the target 'cmd_regen_makefile' is using the command 'configure' instead of 'gyp_node.py' in out/Makefile: cmd_regen_makefile = cd $(srcdir); /work/nodejs/node/configure -fmake As far as I can tell gyp is using sys.argv[0] as the 'gyp_binary' in __init__.py: params = {'options': options, ... 'gyp_binary': sys.argv[0], But when called via 'configure' sys.argv[0] is 'configure' instead of gyp_node.py leading to the above error. This commit suggests setting the program name explicitly in gyp_node.py. Alternatively perhaps this could be done in configure.py instead but I was not sure what would be best.

view details

push time in a month

push eventdanbev/node

Daniel Bevenius

commit sha 1375593e4e13f82d7e2c7caba82aa63246f79161

build,tools: fix cmd_regen_makefile Currently, after having configured and built node and then updating a dependent target the following error is produced when trying to rebuild the project: $ ./configure && make -j8 $ touch node.gypi $ make -j8 configure: error: no such option: -f make[1]: *** [Makefile:685: Makefile] Error 2 The reason for this is that the target 'cmd_regen_makefile' is using the command 'configure' instead of 'gyp_node.py': cmd_regen_makefile = cd $(srcdir); /work/nodejs/node/configure -fmake As far as I can tell gyp is using sys.argv[0] as the 'gyp_binary' in __init__.py: params = {'options': options, ... 'gyp_binary': sys.argv[0], But when called via 'configure' sys.argv[0] is 'configure' instead leading to the above error. This commit suggests setting the program name explicitly in gyp_node.py. Alternatively perhaps this could be done in configure.py instead but I was not sure what would be best.

view details

push time in a month

push eventdanbev/node

Daniel Bevenius

commit sha 127f848ba1bf617c92324346868693020d94d26d

build,tools: fix cmd_regen_makefile Currently, after having configured and built node and then updating a dependent targets the following error is produced when trying to rebuild the project: $ ./configure && make -j8 $ touch node.gypi $ make -j8 configure: error: no such option: -f make[1]: *** [Makefile:685: Makefile] Error 2 The reason for this is that the target 'cmd_regen_makefile' is using the command 'configure' instead of 'gyp_node.py': cmd_regen_makefile = cd $(srcdir); /work/nodejs/node/configure -fmake As far as I can tell gyp is using sys.argv[0] as the 'gyp_binary' in __init__.py: params = {'options': options, ... 'gyp_binary': sys.argv[0], But when called via 'configure' sys.argv[0] is 'configure' instead leading to the above error. This commit suggests setting the program name explicitly in gyp_node.py. Alternatively perhaps this could be done in configure.py instead but I was not sure what would be best.

view details

push time in a month

create barnchdanbev/node

branch : build_regen_make

created branch time in a month

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 076c66c3550fde02d71e12df933f0b712a5fff20

build: add v8_test_fixture.h as prerequisite This commit adds v8_test_fixture.h as a prerequisite to the test targets so that when it gets updated the test will be rebuilt.

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 4e2882df07530f572748ebffb2a77671f692c1bd

doc,src: add RAND_status issue notes/code

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 7a0c4275006ea6fc4dd15c31505d9bb542c111ac

doc: change the build target to linux-x86_64

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 5acdfd40a553b086efec5f173f6bd14fc80a884c

doc: update configure command to include linux-x86

view details

push time in a month

issue openedopenssl/openssl

[3.0.0] EVP_PKEY_CTX_set_rsa_keygen_bits issue with EVP_PKEY_RSA_PSS

While working on upgrading Node.js to use OpenSSL 3.0.0 alpha 4 I've run into an issue when calling EVP_PKEY_CTX_set_rsa_keygen_bits in combination with an id of EVP_PKEY_RSA_PSS.

I've extracted the code used in Node.js into rsa-pss, and the section in question looks like this:

  int modulus_bits = 512;                                                       
  const uint32_t exponent = 0x10001;                                            
  int salt_len = 16;                                                            
  const char* md_name = "sha256";                                               
  const EVP_MD* md = EVP_get_digestbyname(md_name);                             
  const char* mgf1_name = "sha256";                                             
  const EVP_MD* mgf1_md = EVP_get_digestbyname(mgf1_name);                      
                                                                                
  EVP_PKEY_CTX* ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA_PSS, NULL);              
  if (ctx == NULL) {                                                            
    error_and_exit("Could not create a context for RSA_PSS");                   
  }                                                                             
                                                                                
  if (EVP_PKEY_keygen_init(ctx) <= 0) {                                         
    error_and_exit("Could not initialize the RSA context");                     
  }                                                                             
                                                                                
  if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, modulus_bits) <= 0) {               
    error_and_exit("EVP_PKEY_CTX_set_rsa_keygen_bits failed");                  
  }                        

The output of running the rsa-pss is:

$ ./rsa_pss 
RSA_PSS example
EVP_PKEY_CTX_set_rsa_keygen_bits failed
errno: 0, error:00000000:lib(0)::reason(0)

In EVP_PKEY_CTX_set_rsa_keygen_bits there is a check to see if the pkey_id is EVP_PKEY_RSA which is not the case in our situation as it is EVP_PKEY_RSA_PSS, and this is causing -1 to be returned: https://github.com/openssl/openssl/blob/8c330e1939d6b7db93a963116354ef80ca0babb3/crypto/rsa/rsa_lib.c#L1331-L1332

It looks like in 1.1.1 there was a that check for both ids: https://github.com/openssl/openssl/blob/e2e09d9fba1187f8d6aafaa34d4172f56f1ffb72/crypto/rsa/rsa_lib.c#L485-L493

I'm wondering if we should be doing something different for OpenSSL 3.0.0 since this check was removed, or if perhaps this is something that was just overlooked?

created time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha ee783cf4f6eb6c5843b862058dedd5f8a30050ae

doc: clean up EVP_PKEY_CTX_set_rsa_pss_keygen_md section

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 4eeea065e19a020b61afd1ac94e5772dd375e744

src: remove OPENSSL_CONF usage for fips-provider

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha ac6af84660da5280caca18f4405ac4187b3d52ef

src,doc: get fips-provider to run without error

view details

push time in a month

delete branch danbev/node

delete branch : crypto_writeprivatekey

delete time in a month

PR closed nodejs/node

src: add encoding_type variable in WritePrivateKey C++ crypto

This commit adds a local variable named encoding_type which is set to the value of the Maybe using ToChecked().

The motivation for this is the code for ToChecked() could be executed multiple times depending on path taken at runtime. I also think this improves readability, or at least it is as readable as before this change.

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+4 -3

2 comments

1 changed file

danbev

pr closed time in a month

pull request commentnodejs/node

src: add encoding_type variable in WritePrivateKey

Landed in 30612316e4af64e530b9b3ecc1cbfc98d11cae3e.

danbev

comment created time in a month

push eventnodejs/node

Daniel Bevenius

commit sha 30612316e4af64e530b9b3ecc1cbfc98d11cae3e

src: add encoding_type variable in WritePrivateKey This commit adds a local variable named encoding_type which is set to the value of the Maybe using ToChecked(). The motivation for this is the code for ToChecked() could be executed multiple times depending on path taken at runtime. I also think this improves readability, or at least it is as readable as before this change. PR-URL: https://github.com/nodejs/node/pull/34181 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: David Carlier <devnexen@gmail.com>

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 885b8e66e197899ea0b7ac1aae653d649e33ce6a

doc: add fips provider notes (wip)

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha df2b11c700b44a4be1bc81ab0074d9eccf37f309

src: add example of loading a provider

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha a3d51127297fbf67f043f3325a0cc3698436af0e

doc: update FIPS 3 notes

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 9d6e603fd3476f8c846f09b6cd191d710f4f3739

doc: misc cleanups

view details

push time in a month

delete branch danbev/node

delete branch : crypto_keyobjectdata_typo

delete time in a month

PR closed nodejs/node

src: fix minor comment typo in KeyObjectData C++ crypto
Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+1 -1

1 comment

1 changed file

danbev

pr closed time in a month

pull request commentnodejs/node

src: fix minor comment typo in KeyObjectData

Landed in 67ba825037b4082d5d16f922fb9ce54516b4a869.

danbev

comment created time in a month

push eventnodejs/node

Daniel Bevenius

commit sha 67ba825037b4082d5d16f922fb9ce54516b4a869

src: fix minor comment typo in KeyObjectData PR-URL: https://github.com/nodejs/node/pull/34167 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: David Carlier <devnexen@gmail.com>

view details

push time in a month

pull request commentnodejs/node

src: fix minor comment typo in KeyObjectData

CI-lite: https://ci.nodejs.org/job/node-test-pull-request-lite-pipeline/4175/

danbev

comment created time in a month

issue commentdanbev/learning-v8

Can I translate your book into Chinese?

I have translated the introduction in my fork

Nice! Well that sounds good to me then.

Would you feel comfortable if we add a link to your fork saying this is a work in progress to offer a Chinese translation?

rottenpen

comment created time in a month

PR opened nodejs/node

src: add encoding_type variable in WritePrivateKey

This commit adds a local variable named encoding_type which is set to the value of the Maybe using ToChecked().

The motivation for this is the code for ToChecked() could be executed multiple times depending on path taken at runtime. I also think this improves readability, or at least it is as readable as before this change.

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+4 -3

0 comment

1 changed file

pr created time in a month

create barnchdanbev/node

branch : crypto_writeprivatekey

created branch time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 446f641074e2f3f24a141fe2893617e9b134a1b7

ec: print out return code for EVP_PKEY_CTX_set_ec_param_enc

view details

push time in a month

issue commentopenssl/openssl

[3.0.0] `genpkey -algorithm EC -pkeyopt ec_param_enc:explicit` fails

@romen There is no OpenSSL failure/error reported as far as I can tell, below is the output of the standalone program ec and the error in Node.js.

What I see happening is that the function legacy_ctrl_to_param is called and since there is no case that matches EVP_PKEY_EC the return statement will be reached and 0 will be returned. This is then checked in Node.js as interpreted as an error, see details below:

<details> <summary>ec output</summary>

$ ./ec 
Elliptic Curve example
curve_nid of secp256k1: 714
EVP_PKEY_CTX_set_ec_param_enc is returning 0. Why?
errno: 0, error:00000000:lib(0)::reason(0)

</details> <details> <summary>Node.js error</summary>

$ ./out/Debug/node test/parallel/test-crypto-keygen.js
./out/Debug/node[876391]: ../src/node_crypto.cc:6350:void node::crypto::GenerateKeyPairJob::ToResult(v8::Local<v8::Value>*, v8::Local<v8::Value>*, v8::Local<v8::Value>*): Assertion `!errors_.empty()' failed.
 1: 0xe4f878 node::DumpBacktrace(_IO_FILE*) [./out/Debug/node]
 2: 0xf07561 node::Abort() [./out/Debug/node]
 3: 0xf07617  [./out/Debug/node]
 4: 0x10d636d node::crypto::GenerateKeyPairJob::ToResult(v8::Local<v8::Value>*, v8::Local<v8::Value>*, v8::Local<v8::Value>*) [./out/Debug/node]
 5: 0x10d620e node::crypto::GenerateKeyPairJob::AfterThreadPoolWork() [./out/Debug/node]
 6: 0x10d40a5 node::crypto::CryptoJob::AfterThreadPoolWork(int) [./out/Debug/node]
 7: 0xec1b1c node::ThreadPoolWork::ScheduleWork()::{lambda(uv_work_s*, int)#2}::operator()(uv_work_s*, int) const [./out/Debug/node]
 8: 0xec1b42 node::ThreadPoolWork::ScheduleWork()::{lambda(uv_work_s*, int)#2}::_FUN(uv_work_s*, int) [./out/Debug/node]
 9: 0x1d6dabc  [./out/Debug/node]
10: 0x1d6da01  [./out/Debug/node]
11: 0x1d72249  [./out/Debug/node]
12: 0x1d898a8  [./out/Debug/node]
13: 0x1d72bca uv_run [./out/Debug/node]
14: 0xf752a1 node::NodeMainInstance::Run() [./out/Debug/node]
15: 0xeb4e45 node::Start(int, char**) [./out/Debug/node]
16: 0x23331b2 main [./out/Debug/node]
17: 0x7f319142d1a3 __libc_start_main [/lib64/libc.so.6]
18: 0xdfecee _start [./out/Debug/node]
Aborted (core dumped)

</details>

romen

comment created time in a month

issue commentopenssl/openssl

[3.0.0] `genpkey -algorithm EC -pkeyopt ec_param_enc:explicit` fails

I'm currently working on updating Node.js to build and run against OpenSSL 3.x and we use EVP_PKEY_CTX_set_ec_param_enc. (I've extracted this into a standalone program, ec.c which might be easier to follow)

This is causing test failures for us at the moment, but we can add checks to skip them until a fix lands upstream. I just wanted to let you know that we've run into this, and please let us know if there is anything we should do differently.

romen

comment created time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha e4d7ff1fd6eff6ddf293fd7cf554698b11384fd8

src: print the group order

view details

push time in a month

push eventdanbev/learning-v8

Daniel Bevenius

commit sha 8fd4c20a5aa21f4970369c490f4a650031131021

doc: add initial array notes (wip)

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha f57b24cfbad6dd81383462c86129bc5a262ff8ee

src: add back EVP_PKEY_CTX_set_ec_param_enc

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha efe6521d09ee079a1b85d3df9e3f5667c9933ea0

src: print private and public keys

view details

push time in a month

PR opened nodejs/node

src: fix minor comment typo in KeyObjectData
Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+1 -1

0 comment

1 changed file

pr created time in a month

create barnchdanbev/node

branch : crypto_keyobjectdata_typo

created branch time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 0d91389ecb020dad9e89a6432f37e16479a645c4

src: add error function to ec example

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 0b4164cf3449bde1cca28467fc24178b993dd7d4

doc: remove optype diff After trying this update other things failed which leads me to think that this is not the way forward. I'm going to open an issue in OpenSSL to see if they can give some pointers.

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 6beba0f559ed0cd7bb6eed9ab98770ddec110ce9

src: add message to error function

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 9ba1f3281386182516e79c3d27e7c3e7c6fe2334

src: remove loading of default provider

view details

push time in a month

push eventdanbev/learning-libcrypto

Daniel Bevenius

commit sha 805ba8d0c19ca0008e6313e7dab54e2b90d857f0

src: add error_and_exit function to rsa_pss

view details

push time in a month

more