tpm state v=1 failed tries=0 max_tries=200


> u32 tpm_pcr_read(struct udevice *dev, u32 index, void *data, size_t count) > +#include + offsetof(struct tpm_vendor_state, max_tries)); > + memcpy(func_name, state.func_name, sizeof(state.func_name)); > +static int stringify_state(char *buf, int len, char *str, size_t max_size) +. > - void *out_digest); > Asking for help, clarification, or responding to other answers. > u32 tpm_startup(struct udevice *dev, enum tpm_startup_type mode) + > + if (pack_byte_string(buf, sizeof(buf), "sd", > @@ -210,9 +200,9 @@ u32 tpm_read_pubek(struct udevice *dev, void *data, size_t count) > + /* TPM responded as expected */ > + size_t text_size = 0; > {

+ } else {, @@ -456,12 +456,13 @@ u32 tpm1_get_permissions(struct udevice *dev, u32 index, u32 *perm). > break; > index 11aa14eb79..3c8e48bc25 100644 +{ > { > + "v=%d", state.version); > + if (tpm_is_v1(dev)) > --- a/lib/tpm-v2.c > + offsetof(struct tpm_vendor_state, failed_tries)); > @@ -13,11 +13,13 @@ + if (ret) > + if (ret) - return IS_ENABLED(CONFIG_TPM_V2) && tpm_get_version(dev) == TPM_V2; > printf("done\n"); > + */ > return -ENOSYS; > else + */ > { >, > Add a vendor-specific TPM2 command for this and implement it for Cr50. - if (pack_byte_string(buf, sizeof(buf), "d", 0, command, sizeof(command). > + else if (tpm_is_v2(dev))

> diff --git a/include/tpm_api.h b/include/tpm_api.h + ut_assert(tpm_report_state(dev, buf, sizeof(buf))); > else > return -ENOSYS; > u32 tpm_write_lock(struct udevice *dev, u32 index) > + state.version = get_unaligned_be32(buf + > return tpm1_read_pubek(dev, data, count); > + uint size, void *out_digest, const char *name); > + return -ENOSPC; > - tpm_u16(12 + nv_policy_size), /* size */ + return snprintf(buf, size, "init_done=%d", priv->init_done); > } + * This vendor command is used to indicate that non-volatile data should be @@ -266,9 +256,9 @@ u32 tpm_get_capability(struct udevice *dev, u32 cap_area, u32 sub_cap, @@ -276,9 +266,9 @@ u32 tpm_get_permissions(struct udevice *dev, u32 index, u32 *perm). > +++ b/drivers/tpm/cr50_i2c.c > - if (is_tpm1(dev)) > else + > + if (state.version == 0) + char buf[50]; Show that involves a character cloning his colleagues and making them into videogame characters? + + 0, command, sizeof(command). + * @dev: TPM device + .report_state = sandbox_tpm2_report_state, + /** + > - else if (is_tpm2(dev)) +#define VENDOR_RC_ERR 0x00000500 +. + ret = tpm_sendrecv_command(dev, command_v2, recvbuf, recv_size);

> signal its request. > --- a/lib/tpm-v2.c > + uint offset = 10 + 4 + 13 + 14;

> + u32 fail_line; /* s_failLIne */ > { + uint size, void *out_digest, const char *name); @@ -157,6 +157,8 @@ u32 tpm2_pcr_extend(struct udevice *dev, u32 index, u32 algorithm, @@ -140,15 +140,21 @@ u32 tpm_write_lock(struct udevice *dev, u32 index), + uint size, void *out_digest, const char *name). > +++ b/drivers/tpm/tpm2_tis_sandbox.c > { > + if (tpm_is_v1(dev)) { + char buf[80]; > + else if (tpm_is_v2(dev)) + * @size: Maximum size of buffer >

+{ > include/tpm_api.h | 10 ++++++ > u32 tpm_resume(struct udevice *dev) + return 0; > + buf + offsetof(struct tpm_vendor_state, func_name), > + tpm_u32(offset + nv_policy_size + 2),/* Length */ > else > return tpm1_self_test_full(dev); + tpm_u32(10 + 2), /* Length */ > + if (tpm_is_v1(dev)) > + * state' vendor command. By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. > + int buf_size = sizeof(buf); +#define TPM2_CR50_SUB_CMD_TPM_MODE 40 > > diff --git a/lib/tpm-v2.c b/lib/tpm-v2.c > /* What would the ancient Romans have called Hercules' Club? > @@ -81,14 +81,16 @@ u32 tpm_nv_write_value(struct udevice *dev, u32 index, const void *data, +/* +DM_TEST(dm_test_tpm, UT_TESTF_SCAN_FDT); +/* +{

> + * return TPM2_RC_NEEDS_TEST; > /* session header 13 bytes */ I have a bricked Google Slate tablet and I tried the simple schematics from here: Making own Chromebook debug cable (SuzyQable) and didn't work for me Hope that I did everything ok.

+ > + tpm_u16(12 + nv_policy_size + 2), /* size */ > +++ b/lib/tpm-v2.c > + else if (tpm_is_v2(dev)) > + else if (tpm_is_v2(dev)) + > + return -ENOSPC; + int ret; > + * > + state.fail_code = get_unaligned_be32(buf + > /* Nothing needs to be done with tpm2 */ > complain when U-Boot proper later uses it. > + struct tpm_vendor_state state; > + else if (tpm_is_v2(dev)) +#define TPM2_CR50_SUB_CMD_NVMEM_ENABLE_COMMITS 21 + " failed_tries=%d max_tries=%d\n", > @@ -256,9 +246,9 @@ u32 tpm_physical_set_deactivated(struct udevice *dev, u8 state)

> -- UNIX is a registered trademark of The Open Group. + + max_size - text_size, > + } else if (tpm_is_v2(dev)) { > + func_name, > else > + } How to check if TPM2.0 is owned and if TPM is enabled in Ubuntu 16.04? + * tpm_report_state() - Collect information about the current TPM state + if (ret) + VENDOR_RC_NO_SUCH_COMMAND = (VENDOR_RC_ERR | 127), > * Issue a TPM_PCRRead command. > #include > + if (tpm_is_v1(dev)) + */ > return -ENOSYS; > + max_size - text_size, > Signed-off-by: Simon Glass > return tpm2_nv_write_value(dev, index, data, count); +" Show internal state from the TPM (if available)\n", @@ -45,6 +45,16 @@ int tpm_get_desc(struct udevice *dev, char *buf, int size), +int tpm_report_state(struct udevice *dev, char *buf, int size) Thanks for contributing an answer to Super User! > + return -ENOSPC; > + char func_name[4]; /* s_failFunction, limited to 4 chars */ + if (text_size >= max_size) > + ret = stringify_state(buf, buf_size, str, str_max); > * @param dev TPM device > - else if (is_tpm2(dev)) + if (text_size >= max_size) + return -ENOSPC; > + * There is no other processing than setting the source code line > + */ > void *out_digest) However, the current tpm2 APIs aren't very amenable > - if (is_tpm1(dev)) + * @param out_digest 160/256-bit PCR value after execution of the, + * @param name additional info about where the digest comes from. > u32 tpm_resume(struct udevice *dev); > @@ -131,7 +131,8 @@ static int do_tpm_extend(struct cmd_tbl *cmdtp, int flag, int argc, > @@ -57,9 +47,9 @@ u32 tpm_resume(struct udevice *dev) + > This feature is used for measured boot. > return -ENOSYS; > - else if (is_tpm2(dev)) > - * @param out_digest 160-bit PCR value after execution of the > +}, > + > TPM2_DIGEST_LEN); > + /* Skip this, since the startup may have happened in SPL >. > + + * There is no other processing than setting the source code line > } > +static inline bool tpm_is_v2(struct udevice *dev) > where it is used. > TTPM_CHECK(tpm_nv_read_value(dev, INDEX0, (uint8_t *)&x, sizeof(x)), +}. +#define TPM2_CR50_SUB_CMD_REPORT_TPM_STATE 23 +

+ return -ENOSPC; > return tpm2_nv_read_value(dev, index, data, count); > --- a/lib/tpm_api.c + /* The below fields are present in version 2 and above */ > --- a/cmd/tpm-v1.c + > ---

+ ut_asserteq_str("init_done=0", buf); > if (ret) > + state.max_tries = get_unaligned_be32(buf + > > + " not fully supported\n"); >, > At present the emulator assumes that the TPM is inited in the same phase > * - the password (if any) + * Return: result of the operation > > */ > + if (state.version > TPM_STATE_VERSION) +. > + > tpm_u16(nv_policy_size), + + * The following three fields are set by the TPM in case of an assert. + offset, nv_policy, nv_policy_size, +#include > + * @param name additional info about where the digest comes from + tpm_u16(TPM2_CR50_SUB_CMD_REPORT_TPM_STATE), > * command > - > -- > + else if (tpm_is_v2(dev)) + /* + * tpm2_cr50_enable_nvcommits() - Tell Cr50 to commit NV data immediately

> + */ Did Sauron suspect that the Ring would be destroyed? + * + TPM_MODE_DISABLED = 2, @@ -658,4 +702,14 @@ u32 tpm2_disable_platform_hierarchy(struct udevice *dev); +/** > + else if (tpm_is_v2(dev)) */ + VENDOR_RC_INTERNAL_ERROR = (VENDOR_RC_ERR | 6), + tpm_u32(TPM2_CR50_VENDOR_COMMAND), /* Command code */ > + * 'failed tries' TPM counter, and the maximum allowed value of the > + if (tpm_is_v1(dev)) It is not currently supported in > + if (tpm_is_v1(dev)) Start here for a quick overview of the site, Detailed answers to any questions you might have, Discuss the workings and policies of this site, Learn more about Stack Overflow the company, Making own Chromebook debug cable (SuzyQable), Design patterns for asynchronous API communication. + rc = get_tpm(&dev); + *

+ */ > > +{ > -{ > + /* @name is ignored as we do not support measured boot */ > > return tpm1_extend(dev, index, in_digest, out_digest); > + * space_size > - void *out_digest) > + } else if (tpm_is_v2(dev)) { > }; > + int rc; > diff --git a/drivers/tpm/cr50_i2c.c b/drivers/tpm/cr50_i2c.c Text in table not staying left aligned when I use the set length command. + * report_state() - Collect information about the current TPM state > + offsetof(struct tpm_vendor_state, fail_code)); > the TPM drivers, but add it to the API so that code which expects it can How should I deal with coworkers not respecting my blocking off time in my calendar for work? + return ret; + return -ENOSYS; rev2022.7.21.42639. + > + if (tpm_is_v1(dev))

> }; > + * @param in_digest 160/256-bit value representing the event to be Do weekend days count as part of a vacation? > > - TPM_CHECK(tpm_pcr_extend(dev, 1, value_in, value_out)); > + else if (tpm_is_v2(dev))

+ tpm_u16(TPM2_ST_NO_SESSIONS), /* TAG */ + return ops->report_state(dev, buf, size); + +{ > - if (is_tpm1(dev)) > +

> tpm_u32(TPM2_CC_NV_DEFINE_SPACE),/* Command code */ > + if (tpm_is_v1(dev)) > + out_digest, "test"); > if (!rc) { > + return 0; > index bf238a9f2e..0869b70775 100644 + u32 failed_tries; /* gp.failedTries */ > lib/tpm-v1.c | 5 +++-- > return -ENOSYS; > index_offset, index)) + * @dev: Device to check > return tpm2_startup(dev, TPM2_SU_STATE); > return tpm1_continue_self_test(dev); > + ret = tpm2_cr50_report_state(dev, buf, &buf_size); +. > bool use_irq; + * possibly leaving non-volatile data unwritten by the TPM. > else > @@ -232,11 +222,11 @@ u32 tpm_physical_enable(struct udevice *dev) + if (ret) > How to encourage melee combat when ranged is a stronger option. + ut_assert(tpm_report_state(dev, buf, sizeof(buf)));

+ /* make sure function name is zero terminated. Linux is a registered trademark of Linus Torvalds. > > u8 command_v2[COMMAND_BUFFER_SIZE] = { > }; > u32 count) > --- a/include/tpm_api.h > + else if (tpm_is_v2(dev)) + > @@ -140,15 +140,21 @@ u32 tpm_write_lock(struct udevice *dev, u32 index) > Signed-off-by: Simon Glass > * recorded > - /* nv_policy */ > + else if (tpm_is_v2(dev)) > { Is a neuron's information processing more complex than a perceptron? >

+ return -EINVAL; + /* @name is ignored as we do not support measured boot */ > - if (is_tpm1(dev)) sport cars dodge wheels sxt super door vehicle + return 0; > diff --git a/include/tpm_api.h b/include/tpm_api.h > return len; > > + } else { +#include + offsetof(struct tpm_vendor_state, failed_tries)); + * > -} + struct udevice *dev;

+ TPM_MODE_ENABLED = 1,

> * Fill the command structure starting from the first buffer: Do weekend days count as part of a vacation? + offsetof(struct tpm_vendor_state, version)); > + offset + nv_policy_size, space_size); > /* Nothing needs to be done with tpm2 */ > /* > - if (is_tpm1(dev)) > else + return 0; + char *const argv[]) > + return -EINVAL; > return tpm2_pcr_extend(dev, index, TPM2_ALG_SHA256, in_digest, > + * if (!tpm->tests_done) + sizeof(state.func_name)); + u32 fail_line; /* s_failLIne */ + * @dev: Device to check > * Nothing to do on TPM2 for this; use platform hierarchy availability + return rc; > /* message 14 bytes + policy */ @@ -120,8 +123,9 @@ u32 tpm2_nv_define_space(struct udevice *dev, u32 space_index. Tannakian-type reconstruction of etale fundamental group. > TPM_CHECK(tpm_startup(dev, TPM_ST_CLEAR)); + rc = tpm_report_state(dev, buf, sizeof(buf)); + if (text_size >= max_size) - TTPM_CHECK(tpm_pcr_extend(dev, 0, in, out), 200); + TTPM_CHECK(tpm_pcr_extend(dev, 0, in, sizeof(in), out, "test"), 200); @@ -81,14 +81,16 @@ u32 tpm_nv_write_value(struct udevice *dev, u32 index, const void *data, - * @param in_digest 160-bit value representing the event to be, + * @param in_digest 160/256-bit value representing the event to be, - * @param out_digest 160-bit PCR value after execution of the, + * @param size size of digest in bytes > + * state' vendor command. To learn more, see our tips on writing great answers. + * tpm_cr50_report_state() - Report the Cr50 internal state

+ memcpy(state.func_name, + int buf_size = sizeof(buf); > + offset, nv_policy, nv_policy_size, Laymen's description of "modals" to clients. > - if (is_tpm1(dev)) > #include > if (ret != TPM_SUCCESS) { > */ + * just in case. + "v=%d", state.version); > - if (is_tpm1(dev)) > else Is it possible to upgrade the Samsung Slate 7 SSD? > - if (is_tpm1(dev)) { +static int dm_test_tpm(struct unit_test_state *uts) > return 0; > index 22a769c587..d0e3ab1b21 100644 > +++ b/include/tpm_api.h Is there a political faction in Russia publicly advocating for an immediate ceasefire? > + * +#define TPM2_CR50_SUB_CMD_RESET_EC 53 > + state.failed_tries, state.max_tries); > + state.fail_line = get_unaligned_be32(buf + Rename them to have

> + */ @@ -712,4 +712,18 @@ u32 tpm2_submit_command(struct udevice *dev, const u8 *sendbuf, +/* > */ > + * The following two fields are the current time filtered value of the + TPM_MODE_INVALID, +, @@ -795,6 +795,16 @@ static int sandbox_tpm2_get_desc(struct udevice *dev, char *buf, int size), +static int sandbox_tpm2_report_state(struct udevice *dev, char *buf, int size) > else + ret = tpm2_cr50_report_state(dev, buf, &buf_size); > { > other callers can find out which version the TPM is. > * Return: return code of the operation +{ > + buf + offsetof(struct tpm_vendor_state, func_name), + /* header 10 bytes */ + ut_assertok(uclass_first_device_err(UCLASS_TPM, &dev)); + * - ret = pack_byte_string(command_v2, sizeof(command_v2), "s", + * > > > index ac6eb14353..c26f5d35ab 100644 > + * It is transferred over the wire, so it needs to be serialized/deserialized, > +, [PATCH 1/8] tpm: Export the TPM-version functions, 0 siblings, 8 replies; 15+ messages in thread, [PATCH 0/8] tpm: Various minor fixes and enhancements, [PATCH 2/8] tpm: Require a digest source when extending the PCR, 7 siblings, 1 reply; 15+ messages in thread, [PATCH 3/8] tpm: Correct the permissions command in TPMv1, [PATCH 4/8] tpm: Correct the define-space command in TPMv2, [PATCH 5/8] tpm: sandbox: Allow init of TPM in a different phase, [PATCH 6/8] tpm: Allow reporting the internal state, [PATCH 7/8] tpm: Implement state command for Cr50, [PATCH 8/8] tpm: Allow commiting non-volatile data, 7 siblings, 0 replies; 15+ messages in thread, 0 siblings, 0 replies; 15+ messages in thread. + * nv_policy > + if (tpm_is_v1(dev)) { + if (rc < 0) { +enum cr50_tpm_mode { + max_size - text_size, Announcing the Stacks Editor Beta release!

> * instead. > return -ENOSYS; > 1 file changed, 3 insertions(+), 2 deletions(-) > > u32 tpm_get_capability(struct udevice *dev, u32 cap_area, u32 sub_cap, > + if (text_size >= max_size) + * of numerous devices. > { + if (pack_byte_string(buf, sizeof(buf), "sd", > - TTPM_CHECK(tpm_pcr_extend(dev, 0, in, out), 200); + * to extending generically because the marshaling code is assuming all > return tpm1_startup(dev, TPM_ST_STATE); + /* check probe success */ + text_size += snprintf(str + text_size, > + if (text_size >= max_size) + > #include > { > u32 tpm_nv_read_value(struct udevice *dev, u32 index, void *data, u32 count) > return -ENOSYS; + max_size - text_size, + if (size != TPM2_SHA256_DIGEST_SIZE) +#define TPM2_CR50_SUB_CMD_IMMEDIATE_RESET 19 + * return TPM2_RC_NEEDS_TEST; > return -ENOSYS; + log_debug("ret=%s, %x\n", dev->name, ret); + > - if (pack_byte_string(buf, sizeof(buf), "d", 0, command, sizeof(command), > { > return -ENOSYS; + u32 version; > + if (tpm_is_v1(dev)) > + if (tpm_is_v1(dev)) + * @recvbuf: Buffer to save the response to > +/* > @@ -91,7 +91,8 @@ static int test_early_extend(struct udevice *dev) > return tpm2_get_capability(dev, cap_area, sub_cap, cap, count); > + if (tpm_is_v1(dev)) + * + text_size += snprintf(str + text_size, max_size - text_size, + if (ret) But in fact SPL may init the TPM, so we don't want to + * Written by Simon Glass > > u32 tpm_physical_enable(struct udevice *dev) > > return tpm1_pcr_read(dev, index, data, count); > #include > + 0, command, sizeof(command),

Any other option (without opening the tablet to try to unplug the battery)? > + * counter. > { + * > - else if (is_tpm2(dev)) > + if (tpm_is_v1(dev)) > return tpm2_write_lock(dev, index); > + if (state.fail_line) { + offsetof(struct tpm_vendor_state, fail_code)); Connect and share knowledge within a single location that is structured and easy to search. > + /* TPM is enabled, and mode may not be changed. > tpm_u32(nv_attributes), > index f8c3087894..dabf617be0 100644 > diff --git a/cmd/tpm_test.c b/cmd/tpm_test.c +enum cr50_vendor_rc { > lib/tpm_api.c | 14 ++++++++++---- > #include > + } + + > + char func_name[sizeof(state.func_name) + 1]; + */ > + return -ENOSPC; > return TPM_LIB_ERROR; Text in table not staying left aligned when I use the set length command. > /* header 10 bytes */ - if (!tpm->tests_done) > + * nv_policy > > @@ -157,6 +157,8 @@ u32 tpm2_pcr_extend(struct udevice *dev, u32 index, u32 algorithm, > /* Nothing needs to be done with tpm2 */ Super User is a question and answer site for computer enthusiasts and power users. Short story about the creation of a spell that creates a copy of a specific woman. @@ -21,6 +21,8 @@ int do_tpm_device(struct cmd_tbl *cmdtp, int flag, int argc. > drivers/tpm/cr50_i2c.c | 117 +++++++++++++++++++++++++++++++++++++++++ > - /* handles 8 bytes */ > - else if (is_tpm2(dev)) > --- +static inline bool tpm_is_v2(struct udevice *dev) + u8 command_v2[COMMAND_BUFFER_SIZE] = { > + if (ret) > - if (is_tpm1(dev)) - rc = tpm_pcr_extend(dev, index, in_digest, out_digest); + rc = tpm_pcr_extend(dev, index, in_digest, sizeof(in_digest), + > puts("PCR value after execution of the command:\n"); > + return IS_ENABLED(CONFIG_TPM_V2) && tpm_get_version(dev) == TPM_V2; + ut_asserteq_str("init_done=1", buf); > } + * > + if (tpm_is_v1(dev)) > size_t response_length = sizeof(response); + */ > return 0; > a tpm_ prefix() and add them to the header file. + /* header 10 bytes */ +#define TPM2_CR50_SUB_CMD_GET_REC_BTN 29 + * Copyright 2022 Google LLC + state.fail_code = get_unaligned_be32(buf + > + if (text_size >= max_size) > @@ -276,9 +266,9 @@ u32 tpm_get_permissions(struct udevice *dev, u32 index, u32 *perm) > u32 tpm_force_clear(struct udevice *dev) > + if (size != TPM2_SHA256_DIGEST_SIZE) > return -ENOSYS; > - return IS_ENABLED(CONFIG_TPM_V1) && tpm_get_version(dev) == TPM_V1; > @@ -163,9 +153,9 @@ u32 tpm_pcr_extend(struct udevice *dev, u32 index, const void *in_digest,
Página no encontrada ⋆ Abogados Zaragoza

No se encontró la página

Impuestos por vender bienes de segunda mano

Internet ha cambiado la forma en que consumimos. Hoy puedes vender lo que no te gusta en línea como en Labrujita, pero ten cuidado cuando lo hagas porque puede que tengas que pagar impuestos. La práctica, común en los Estados Unidos y en los países anglosajones, pero no tanto en España, es vender artículos que …

El antiguo oficio del mariachi y su tradición

Conozca algunas de las teorías detrás de la música más excitante y especial para las celebraciones y celebraciones de El Mariachi! Se dice que la palabra “mariachi” proviene de la pronunciación indígena de los cantos a la Virgen: “Maria ce”. Otros investigadores asocian esta palabra con el término francés “mariage”, que significa “matrimonio”. El Mariachi …

A que edad nos jubilamos los abogados

¿Cuántos años podemos retirarnos los abogados? ¿Cuál es la edad de jubilación en España? Actualmente, estos datos dependen de dos variables: la edad y el número de años de cotización. Ambos parámetros aumentarán continuamente hasta 2027. En otras palabras, para jubilarse con un ingreso del 100%, usted debe haber trabajado más y más tiempo. A …

abogado amigo

Abogado Amigo, el mejor bufete a tu servicio

Abogado Amigo es un bufete integrado por un grupo de profesionales especializados en distintas áreas, lo que les permite ser más eficientes a la hora de prestar un servicio. Entre sus especialidades, se encuentran: Civil Mercantil Penal Laboral Administrativo Tecnológico A estas especialidades, se unen también los abogados especialistas en divorcios. Abogado Amigo, además cuenta …

Web de Profesionales en cada ciudad

En Trabajan.es, somos expertos profesionales damos servicio por toda la geodesia española, fundamentalmente en Madrid, Murcia, Valencia, Bilbao, Barcelona, Alicante, Albacete y Almería. Podemos desplazarnos en menos de quince minutos, apertura y cambio al mejor precio. ¿Que es trabajan? Trabajan.es es un ancho convención de empresas dedicados básicamente a servicios profesionales del grupo. Abrimos todo …

cantineo

Cantineoqueteveo

Cantineoqueteveo la palabra clave del mercado de SEO Cantina comercializará el curso gratuito de SEO que se reduce a 2019 que más lectores! Como verás en el título de este post, te presentamos el mejor concurso de SEO en español. Y como no podía ser de otra manera, participaremos con nuestra Web. Con este concurso …

Gonartrosis incapacidad

Gonartrosis e incapacidad laboral

La gonartrosis o artrosis de rodilla, es la artrosis periférica más frecuente, que suele tener afectación bilateral y predilección por el sexo femenino. La artrosis de rodilla es una de las formas más frecuentes de incapacidad laboral en muchos pacientes. La experiencia pone de relieve que en mujeres mayores de 60 años, que en su …

epilepsia

La epilepsia como incapacidad laboral permanente

En la realidad práctica hay muchos epilépticos que están trabajando y que la enfermedad es anterior a la fecha en que consiguieron su primer trabajo y que lo han desarrollado bien durante muchos años llegando algunos incluso a la edad de jubilación sin haber generado una invalidez de tipo permanente. Lo anterior significa que la epilepsia no …

custodia hijos

¿Se puede modificar la custodia de los hijos?

Con frecuencia llegan a los despachos de abogados preguntas sobre si la guarda y custodia fijada en una sentencia a favor de la madre, se trata de un hecho inmutable o por el contrario puede estar sujeto a modificaciones posteriores. La respuesta a este interrogante es evidentemente afirmativa y a lo largo del presente post vamos a …

informe policia

La importancia de los informes policiales y el código de circulación como pruebas en tu accidente de tráfico

La importancia de los informes policiales y el código de circulación como pruebas en tu accidente de tráfico Los guardarraíles y biondas, instalados en nuestras carreteras como elementos de seguridad pasiva para dividir calzadas de circulación en sentidos opuestos, así como para evitar en puntos conflictivos salidas de vía peligrosas, cumplen un importante papel en el ámbito de la protección frente …