function _mapOutAttributes(&$root, $path, $asn1)
    {
        $attributes = &$this->_subArray($root, $path);

        if (is_array($attributes)) {
            $size = count($attributes);
            for ($i = 0; $i < $size; $i++) {
                /* [value] contains the DER encoding of an ASN.1 value
                   corresponding to the attribute type identified by type */
                $id = $attributes[$i]['type'];
                $map = $this->_getMapping($id);
                if ($map === false) {
                    user_error($id . ' is not a currently supported attribute', E_USER_NOTICE);
                    unset($attributes[$i]);
                } elseif (is_array($attributes[$i]['value'])) {
                    $values = &$attributes[$i]['value'];
                    for ($j = 0; $j < count($values); $j++) {
                        switch ($id) {
                            case 'pkcs-9-at-extensionRequest':
                                $this->_mapOutExtensions($values, $j, $asn1);
                                break;
                        }

                        if (!is_bool($map)) {
                            $temp = $asn1->encodeDER($values[$j], $map);
                            $decoded = $asn1->decodeBER($temp);
                            $values[$j] = $asn1->asn1map($decoded[0], $this->AttributeValue);
                        }
                    }
                }
            }
        }
    }
function _mapOutAttributes(&$root, $path, $asn1)
    {
        $attributes = &$this->_subArray($root, $path);

        if (is_array($attributes)) {
            $size = count($attributes);
            for ($i = 0; $i < $size; $i++) {
                /* [value] contains the DER encoding of an ASN.1 value
                   corresponding to the attribute type identified by type */
                $id = $attributes[$i]['type'];
                $map = $this->_getMapping($id);
                if ($map === false) {
                    user_error($id . ' is not a currently supported attribute', E_USER_NOTICE);
                    unset($attributes[$i]);
                } elseif (is_array($attributes[$i]['value'])) {
                    $values = &$attributes[$i]['value'];
                    for ($j = 0; $j < count($values); $j++) {
                        switch ($id) {
                            case 'pkcs-9-at-extensionRequest':
                                $this->_mapOutExtensions($values, $j, $asn1);
                                break;
                        }

                        if (!is_bool($map)) {
                            $temp = $asn1->encodeDER($values[$j], $map);
                            $decoded = $asn1->decodeBER($temp);
                            $values[$j] = $asn1->asn1map($decoded[0], $this->AttributeValue);
                        }
                    }
                }
            }
        }
    }
function _mapOutAttributes ( & $ root , $ path , $ asn1 ) { $ attributes = & $ this -> _subArray ( $ root , $ path ) ; if ( is_array ( $ attributes ) ) { $ size = count ( $ attributes ) ; for ( $ i = 0 ; $ i < $ size ; $ i ++ ) { /* [value] contains the DER encoding of an ASN.1 value
                   corresponding to the attribute type identified by type */ $ id = $ attributes [ $ i ] [ 'type' ] ; $ map = $ this -> _getMapping ( $ id ) ; if ( $ map === false ) { user_error ( $ id . ' is not a currently supported attribute' , E_USER_NOTICE ) ; unset ( $ attributes [ $ i ] ) ; } elseif ( is_array ( $ attributes [ $ i ] [ 'value' ] ) ) { $ values = & $ attributes [ $ i ] [ 'value' ] ; for ( $ j = 0 ; $ j < count ( $ values ) ; $ j ++ ) { switch ( $ id ) { case 'pkcs-9-at-extensionRequest' : $ this -> _mapOutExtensions ( $ values , $ j , $ asn1 ) ; break ; } if ( ! is_bool ( $ map ) ) { $ temp = $ asn1 -> encodeDER ( $ values [ $ j ] , $ map ) ; $ decoded = $ asn1 -> decodeBER ( $ temp ) ; $ values [ $ j ] = $ asn1 -> asn1map ( $ decoded [ 0 ] , $ this -> AttributeValue ) ; } } } } } }
Map attribute values from attribute-specific internal format to
ANY type.

@param array ref $root
@param string $path
@param object $asn1
@access private
Map attribute values from attribute - specific internal format to ANY type .